1*86d7f5d3SJohn Marino /* 2*86d7f5d3SJohn Marino * Copyright (c)2004 Cat's Eye Technologies. All rights reserved. 3*86d7f5d3SJohn Marino * 4*86d7f5d3SJohn Marino * Redistribution and use in source and binary forms, with or without 5*86d7f5d3SJohn Marino * modification, are permitted provided that the following conditions 6*86d7f5d3SJohn Marino * are met: 7*86d7f5d3SJohn Marino * 8*86d7f5d3SJohn Marino * Redistributions of source code must retain the above copyright 9*86d7f5d3SJohn Marino * notice, this list of conditions and the following disclaimer. 10*86d7f5d3SJohn Marino * 11*86d7f5d3SJohn Marino * Redistributions in binary form must reproduce the above copyright 12*86d7f5d3SJohn Marino * notice, this list of conditions and the following disclaimer in 13*86d7f5d3SJohn Marino * the documentation and/or other materials provided with the 14*86d7f5d3SJohn Marino * distribution. 15*86d7f5d3SJohn Marino * 16*86d7f5d3SJohn Marino * Neither the name of Cat's Eye Technologies nor the names of its 17*86d7f5d3SJohn Marino * contributors may be used to endorse or promote products derived 18*86d7f5d3SJohn Marino * from this software without specific prior written permission. 19*86d7f5d3SJohn Marino * 20*86d7f5d3SJohn Marino * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21*86d7f5d3SJohn Marino * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22*86d7f5d3SJohn Marino * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 23*86d7f5d3SJohn Marino * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 24*86d7f5d3SJohn Marino * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 25*86d7f5d3SJohn Marino * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26*86d7f5d3SJohn Marino * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 27*86d7f5d3SJohn Marino * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28*86d7f5d3SJohn Marino * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 29*86d7f5d3SJohn Marino * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30*86d7f5d3SJohn Marino * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 31*86d7f5d3SJohn Marino * OF THE POSSIBILITY OF SUCH DAMAGE. 32*86d7f5d3SJohn Marino */ 33*86d7f5d3SJohn Marino 34*86d7f5d3SJohn Marino /* 35*86d7f5d3SJohn Marino * conn_tcp.h 36*86d7f5d3SJohn Marino * $Id: conn_tcp.h,v 1.7 2005/02/06 19:53:19 cpressey Exp $ 37*86d7f5d3SJohn Marino */ 38*86d7f5d3SJohn Marino 39*86d7f5d3SJohn Marino #ifndef __CONN_TCP_H_ 40*86d7f5d3SJohn Marino #define __CONN_TCP_H_ 41*86d7f5d3SJohn Marino 42*86d7f5d3SJohn Marino #include "system.h" 43*86d7f5d3SJohn Marino #ifdef HAS_TCP 44*86d7f5d3SJohn Marino 45*86d7f5d3SJohn Marino #include <stdio.h> 46*86d7f5d3SJohn Marino 47*86d7f5d3SJohn Marino #include "dfui.h" 48*86d7f5d3SJohn Marino 49*86d7f5d3SJohn Marino struct dfui_conn_tcp { 50*86d7f5d3SJohn Marino int listen_sd; /* listen socket descriptor (b/e) */ 51*86d7f5d3SJohn Marino int connected_sd; /* connected socket descriptor */ 52*86d7f5d3SJohn Marino int is_connected; /* is socket connected 0 = no */ 53*86d7f5d3SJohn Marino FILE *stream; /* stream that wraps connected_sd */ 54*86d7f5d3SJohn Marino }; 55*86d7f5d3SJohn Marino 56*86d7f5d3SJohn Marino #define T_TCP(c) ((struct dfui_conn_tcp *)c->t_data) 57*86d7f5d3SJohn Marino 58*86d7f5d3SJohn Marino dfui_err_t dfui_tcp_be_start(struct dfui_connection *); 59*86d7f5d3SJohn Marino dfui_err_t dfui_tcp_be_stop(struct dfui_connection *); 60*86d7f5d3SJohn Marino 61*86d7f5d3SJohn Marino dfui_err_t dfui_tcp_be_ll_exchange(struct dfui_connection *, 62*86d7f5d3SJohn Marino char msgtype, const char *); 63*86d7f5d3SJohn Marino dfui_err_t dfui_tcp_be_ll_receive(struct dfui_connection *); 64*86d7f5d3SJohn Marino dfui_err_t dfui_tcp_be_ll_reply(struct dfui_connection *, const char *); 65*86d7f5d3SJohn Marino 66*86d7f5d3SJohn Marino dfui_err_t dfui_tcp_fe_connect(struct dfui_connection *); 67*86d7f5d3SJohn Marino dfui_err_t dfui_tcp_fe_disconnect(struct dfui_connection *); 68*86d7f5d3SJohn Marino 69*86d7f5d3SJohn Marino dfui_err_t dfui_tcp_fe_ll_request(struct dfui_connection *, char, const char *); 70*86d7f5d3SJohn Marino 71*86d7f5d3SJohn Marino int read_data(FILE *, char *, int); 72*86d7f5d3SJohn Marino int write_data(FILE *, const char *, int); 73*86d7f5d3SJohn Marino 74*86d7f5d3SJohn Marino #endif /* HAS_TCP */ 75*86d7f5d3SJohn Marino #endif /* !__CONN_TCP_H_ */ 76