/* $Id: socket.c,v 1.5 2002/12/05 19:09:57 reinelt Exp $ * * simple socket functions * * Copyright 2001 by Leopold Tötsch (lt@toetsch.at) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * * $Log: socket.c,v $ * Revision 1.5 2002/12/05 19:09:57 reinelt * patches for gcc-3.2 * * Revision 1.4 2001/09/12 05:58:16 reinelt * fixed bug in mail2.c * * Revision 1.3 2001/09/12 05:37:22 reinelt * * fixed a bug in seti.c (file was never closed, lcd4linux run out of fd's * * improved socket debugging * * Revision 1.2 2001/03/15 14:25:05 ltoetsch * added unread/total news * * Revision 1.1 2001/03/14 13:19:29 ltoetsch * Added pop3/imap4 mail support * * */ /* * Exported Functions: * * int open_socket(char *machine, int port); * * open and connect to socket on machine:port * returns fd on success or -1 on error * * * int read_socket(int fd, char *buf, size_t size); * * read maximum size chars into buf * returns n byte read, 0 on timeout, -1 on error * * * int read_socket_match(int fd, char *buf, size_t size, char *match); * * read maximum size chars into buf and check if the start of line * matches 'match' * returns n on successful match, 0 on timeout/mismatch, -1 on error * * * int write_socket(int fd, char *string); * * write string to socket fd * returns n byte written, -1 on error * * with debuglevel 3, traffic on socket is logged * */ #include #include #include #include #include #include #include #include #include #include #include #include "debug.h" #define TIMEOUT 5 /* 5 seconds timeout */ static char *quotemeta (char *string) { static char buffer[256]; char *s, *p; p=buffer; for (s=string; *s; s++) { if (isprint(*s)) { *p++=*s; } else { switch (*s) { case '\r': *p++='\\'; *p++='r'; break; case '\n': *p++='\\'; *p++='n'; break; default: p+=sprintf(p, "<\\%03o>", (int)*s); } } if ((p-buffer)>240) { *p++='.'; *p++='.'; *p++='.'; break; } } *p='\0'; return buffer; } static char *del_pass(char *s) { char *p; /* del pop3 pass from log */ if (memcmp(s, "PASS ", 5) == 0) for (p = s+5; *p && *p != '\r'; p++) *p = '*'; /* del imap4 pass from log */ else if (memcmp(s, ". LOGIN", 7) == 0) for (p = s + strlen(s)-3 ; p > s && *p != ' '; p--) *p = '*'; return s; } static void sockdebug (char dir, int len, char *string) { // delete passwords from log if (dir=='>') { del_pass (string); } message (3, "%c[%2d] %s", dir, len, quotemeta(string)); } int open_socket(char *machine, int port) { struct hostent *addr; struct sockaddr_in s; int fd; addr = gethos
# Makefile for linuxtv.org dvb-apps/util/zap

objects  = zap_ca.o  \
           zap_dvb.o

binaries = zap

inst_bin = $(binaries)

CPPFLAGS += -I../../lib
LDFLAGS  += -L../../lib/libdvbapi -L../../lib/libdvbsec  -L../../lib/libdvbcfg -L../../lib/libdvben50221 -L../../lib/libucsi
LDLIBS   += -ldvbcfg -ldvben50221 -ldvbsec -ldvbapi -lucsi -lpthread

.PHONY: all

all: $(binaries)

$(binaries): $(objects)

include ../../Make.rules