Use the new parsing stuff in remote.c

This commit is contained in:
dcp1990 2005-06-13 21:04:13 +00:00
parent d8eeaa1f3c
commit 0cecdf5879
3 changed files with 21 additions and 18 deletions

View file

@ -3,7 +3,7 @@
* (C)2005, Dan Ponte * (C)2005, Dan Ponte
* BSDL w/ advert. * BSDL w/ advert.
*/ */
/* $Amigan: phoned/include/phoned.h,v 1.10 2005/06/13 03:40:27 dcp1990 Exp $ */ /* $Amigan: phoned/include/phoned.h,v 1.11 2005/06/13 21:04:13 dcp1990 Exp $ */
#include <pcre.h> /* fugly, I know... */ #include <pcre.h> /* fugly, I know... */
#define VERSION "0.1" #define VERSION "0.1"
#define LOGFILE "/var/log/phoned.log" #define LOGFILE "/var/log/phoned.log"
@ -97,6 +97,17 @@ typedef struct cnd_t {
struct cnd_t* last; struct cnd_t* last;
struct cnd_t* next; struct cnd_t* next;
} cond_t; } cond_t;
typedef enum stat {
init = 0,
loginstage,
pass
} states_t;
typedef struct si_t {
states_t st;
short freeit;
FILE* fpo;
} state_info_t;
#ifdef HAVE_INET_INCS #ifdef HAVE_INET_INCS
typedef struct adll_t { typedef struct adll_t {
in_addr_t addr; in_addr_t addr;
@ -132,3 +143,5 @@ cond_t* copy_condition(cond_t* con);
void check_condition(cid_t* cid); void check_condition(cid_t* cid);
void *modem_io(void *k); void *modem_io(void *k);
void give_me_modem(char* str); void give_me_modem(char* str);
char *parse_command(const char *cmd, short *cont, state_info_t *s);
void begin_dialogue(FILE* fp);

View file

@ -28,7 +28,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
*/ */
/* $Amigan: phoned/phoned/remote.c,v 1.1 2005/06/13 21:00:07 dcp1990 Exp $ */ /* $Amigan: phoned/phoned/remote.c,v 1.2 2005/06/13 21:04:14 dcp1990 Exp $ */
/* system includes */ /* system includes */
#include <string.h> #include <string.h>
#include <stdio.h> #include <stdio.h>
@ -39,16 +39,6 @@
#define MAXARGS 15 #define MAXARGS 15
#define CHK(m) strcasecmp(m, argvect[cpos]) == 0 #define CHK(m) strcasecmp(m, argvect[cpos]) == 0
#define RNF(m) s->freeit = 0; free(is); return(m) #define RNF(m) s->freeit = 0; free(is); return(m)
typedef enum stat {
init = 0,
login,
pass
} states_t;
typedef struct si_t {
states_t st;
short freeit;
FILE* fpo;
} state_info_t;
char *parse_command(cmd, cont, s) char *parse_command(cmd, cont, s)
const char *cmd; const char *cmd;
@ -98,7 +88,7 @@ char *parse_command(cmd, cont, s)
RNF("500 OK: Give Me Modem tested.\n"); RNF("500 OK: Give Me Modem tested.\n");
} }
break; break;
case login: case loginstage:
break; break;
case pass: case pass:
break; break;

View file

@ -54,11 +54,11 @@ void *handclient(k)
void* k; void* k;
{ {
int sk = (int)k; int sk = (int)k;
char buffer[1024]; FILE* tf;
int rlen; lprintf(info, "Incoming client.");
rlen = recv(sk, buffer, sizeof(buffer), 0); tf = fdopen(sk, "r+");
lprintf(debug, "Client said %s.", buffer); begin_dialogue(tf);
close(sk); fclose(tf);
pthread_exit(NULL); pthread_exit(NULL);
return 0; return 0;
} }