/* ARGSUSED */ int #ifndef ANSI_PROTOTYPES main(argc, argv, envp) int argc; char *argv[]; char *envp[]; #else /* ANSI_PROTOTYPES */ main(int argc, char **argv, char **envp) #endif /* ANSI_PROTOTYPES */ { int retval; dirty = 0; retval = -util_process_arglist(argv + 1, do_rmdir); if (dirty) util_dirtydir("."); client_done(); return retval; }
// // Called by the obex-layer when some event occurs. // void obex_event(obex_t *handle, obex_object_t *object, int mode, int event, int obex_cmd, int obex_rsp) { switch (event) { case OBEX_EV_PROGRESS: printf("Made some progress...\n"); break; case OBEX_EV_ABORT: printf("Request aborted!\n"); break; case OBEX_EV_REQDONE: if(mode == OBEX_MODE_CLIENT) { client_done(handle, object, obex_cmd, obex_rsp); } else { server_done(handle, object, obex_cmd, obex_rsp); } break; case OBEX_EV_REQHINT: /* Accept any command. Not rellay good, but this is a test-program :) */ OBEX_ObjectSetRsp(object, OBEX_RSP_CONTINUE, OBEX_RSP_SUCCESS); break; case OBEX_EV_REQ: server_request(handle, object, event, obex_cmd); break; case OBEX_EV_LINKERR: OBEX_TransportDisconnect(handle); printf("Link broken!\n"); break; case OBEX_EV_STREAMEMPTY: fillstream(handle, object); break; default: printf("Unknown event %02x!\n", event); break; } }
/** Handle incoming event from OpenOBEX. */ static void cli_obex_event(obex_t *handle, obex_object_t *object, int UNUSED(mode), int event, int obex_cmd, int obex_rsp) { /*@temp@*/ obexftp_client_t *cli; cli = OBEX_GetUserData(handle); switch (event) { case OBEX_EV_PROGRESS: cli->infocb(OBEXFTP_EV_PROGRESS, "", 0, cli->infocb_data); break; case OBEX_EV_REQDONE: cli->finished = TRUE; if(obex_rsp == OBEX_RSP_SUCCESS) cli->success = TRUE; else { cli->success = FALSE; DEBUG(2, "%s() OBEX_EV_REQDONE: obex_rsp=%02x\n", __func__, obex_rsp); } cli->obex_rsp = obex_rsp; client_done(handle, object, obex_cmd, obex_rsp); break; case OBEX_EV_LINKERR: cli->finished = TRUE; cli->success = FALSE; DEBUG(2, "%s() OBEX_EV_LINKERR\n", __func__); break; case OBEX_EV_STREAMEMPTY: if (cli->out_data) (void) cli_fillstream_from_memory(cli, object); else (void) cli_fillstream_from_file(cli, object); break; default: DEBUG(1, "%s() Unknown event %d\n", __func__, event); break; } }
static void read_handler(ae_event_loop *el, int fd, void *priv, int mask) { client *c = (client *)priv; int nread; char buffer[4096]; nread = read(fd, buffer, 4096); if (nread == -1) { if (errno == EAGAIN) { return; } fprintf(stderr, "Error: %s\n", strerror(errno)); exit(1); } else if (nread == 0) { fprintf(stderr, "Error: %s\n", "Server close connection."); exit(1); } c->read += nread; if (c->read == sdslen(c->obuf)) { c->latency = ustime() - c->start; ++conf.requests_finished; client_done(c); } }