亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? driver.c

?? 使用TAP的蜂窩型GSM手機短消息服務中心
?? C
字號:
/* -------------------------------------------------------------------- *//* SMS Client, send messages to mobile phones and pagers		*//*									*//* driver.c								*//*									*//*  Copyright (C) 1997,1998 Angelo Masci				*//*									*//*  This library is free software; you can redistribute it and/or	*//*  modify it under the terms of the GNU Library General Public		*//*  License as published by the Free Software Foundation; either	*//*  version 2 of the License, or (at your option) any later version.	*//*									*//*  This library 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	*//*  Library General Public License for more details.			*//*									*//*  You should have received a copy of the GNU Library General Public	*//*  License along with this library; if not, write to the Free		*//*  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.	*//*									*//*  You can contact the author at this e-mail address:			*//*									*//*  angelo@styx.demon.co.uk						*//*									*//* -------------------------------------------------------------------- *//* $Id: driver.c,v 5.1 1998/02/01 07:10:39 root Exp $   -------------------------------------------------------------------- */#include <stdio.h>#include <string.h>#if defined(MODEMLIB) && (MODEMLIB == LIBMODEM)#include <termios.h>#include <dial/modems.h>#else#include "sms_modem.h"#endif#include "common.h"#include "logfile.h"#include "driver.h"#include "parserc.h"#include "sms_error.h"/* -------------------------------------------------------------------- */#if !defined(MSERVICEDIR)#error "MSERVICEDIR undefined"#else#define SERVICEDIR        MSERVICEDIR#endif/* -------------------------------------------------------------------- */DEVICE_ENTRY *device_list[] = {#if defined(TAP)	&tap_device,#endif#if defined(VODAFONE)	&vodafone_device,#endif#if defined(ORANGE)	&orange_device,#endif#if defined(PAGEONE)	&pageone_device,#endif#if defined(VODACOM)	&vodacom_device,#endif#if defined(MTN)	&mtn_device,#endif#if defined(ONE2ONE)	&one2one_device,#endif#if defined(LIBERTEL)	&libertel_device,#endif#if defined(TIM)	&tim_device,#endif#if defined(SNPP)	&snpp_device,#endif#if defined(CIMD)	&cimd_device,#endif#if defined(VODAPAGE_BLOCK)	&vodapage_block_device,#endif#if defined(PROXIMUS)	&proximus_device,#endif#if defined(KPN)	&kpn_device,#endif#if defined(ANSWER)	&answer_device,#endif#if defined(GENERIC)	&generic_device,#endif	NULL};/* -------------------------------------------------------------------- */#if defined(MODEMLIB) && (MODEMLIB == LIBMODEM)static void LIBMODEM_setup_comm_params(int fd, char *params);static int LIBMODEM_dial(char *number, char *params, long baud);static int num2baud (long baud_num);static int SMS_dial(char *number, char *params, long baud);static void SMS_hangup(int fd);#endif/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */DEVICE_ENTRY *get_device(char *name){	DEVICE_ENTRY **device;	if (name == NULL)	{	return NULL;	}		device = device_list;	while (*device != NULL)	{		if ((*device)->name != NULL)		{	if (strcmp((*device)->name, name) == 0)			{				lprintf(LOG_VERBOSE, "Device Found: %s\n", name);				return *device;			}		}		device++;	}	lprintf(LOG_VERBOSE, "Device NOT Found: %s\n", name);	return NULL;}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */void display_drivers(void){	DEVICE_ENTRY **device;	device = device_list;	if (*device == NULL)	{	lprintf(LOG_WARNING, "No drivers have been included!\n");	}	while (*device != NULL)	{		if ((*device)->name != NULL)		{	lprintf(LOG_STANDARD, "%s\n", (*device)->name);		}		else		{	lprintf(LOG_STANDARD, "<NULL>\n");		}		device++;	}}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */#if defined(MODEMLIB) && (MODEMLIB == LIBMODEM)static void LIBMODEM_setup_comm_params(int fd, char *params){	struct 	termios 		trm;		if (params == NULL)	{	return;	}	lprintf(LOG_VERBOSE, "Setting communications parameters: %s\n", params);	if (strcmp(params, "8N1") == 0)	{		/* Default - No ACTION */	}	else if (strcmp(params, "7E1") == 0)	{		tcgetattr(fd, &trm);		trm.c_cflag &= ~(CSIZE|CSTOPB|PARODD);		trm.c_cflag |= CS7|PARENB;		tcsetattr(fd, TCSAFLUSH, &trm);	}}        static int num2baud(long baud) {	switch (baud)	{		case 0:			return B0;		case 50:			return B50;		case 75:			return B75;		case 110:			return B110;		case 134:			return B134;		case 150:			return B150;		case 200:			return B200;		case 300:			return B300;		case 600:			return B600;		case 1200:			return B1200;		case 1800:			return B1800;		case 2400:			return B2400;		case 4800:			return B4800;		case 7200:		case 9600:			return B9600;		case 12200:		case 14400:		case 16800:		case 19200:			return B19200;		case 21600:		case 24000:		case 26400:		case 28800:		case 31200:		case 33600:		case 38400:			return B38400;	}	return -1;}static int LIBMODEM_dial(char *number, char *params, long baud){	int 	fd, mbaud;	lprintf(LOG_VERBOSE, "Using Libmodem Package\n");		mbaud = num2baud(baud);	if (mbaud != -1)	{	fd = bdial(number, num2baud(baud));	}	else	{	lprintf(LOG_WARNING, "Unknown baud %ld\n", baud);		return -1;	}	/* Libmodem-1.0.0 does not supports 	*/	/* cofiguration of modem parameters.	*/	/* Use own function to change them.	*/	if (fd >= 0)	{	LIBMODEM_setup_comm_params(fd, params);	}	return fd;}static int SMS_dial(char *number, char *params, long baud){	return LIBMODEM_dial(number, params, baud);}static void SMS_hangup(int fd){	hangup(fd);}#endif/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */int default_dial(DRIVER_DEFAULT_ENV *env){	lprintf(LOG_STANDARD, "Dialing SMSC %s...\n", env->centre_number);		env->fd = SMS_dial(env->centre_number, env->comms_params, env->baud);	if (env->fd < 0)	{ 	lprintf(LOG_WARNING, "Failed to connect\n"); 		return EDIAL;	}	lprintf(LOG_STANDARD, "Connection Established.\n");	return 0;}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */void default_hangup(DRIVER_DEFAULT_ENV *env){	lprintf(LOG_STANDARD, "Hangup...\n");	SMS_hangup(env->fd);	env->connection_status = SERVICE_NOT_CONNECTED;}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */SMS_list *default_main(SMS_list *list, char *message, DRIVER_DEFAULT_ENV *env){	SMS_list 		*node;	int	result;	if (env->device->name != NULL)	{	lprintf(LOG_VERBOSE, "%s driver called\n", env->device->name);	}	else	{	lprintf(LOG_VERBOSE, "<NULL> driver called\n");	}	env->connection_status = SERVICE_NOT_CONNECTED;	result = 0;		node = get_first(list);	while (node != NULL)	{		result = (* env->device->deliver)(node, message, env);		set_delivery(node, result);		if (result)		{	(* env->device->hangup)(env);			env->connection_status = SERVICE_NOT_CONNECTED;		}		node = get_next(node);	}	if ((result == 0) && (env->connection_status == SERVICE_CONNECTED))	{		(* env->device->disconnect)();		(* env->device->hangup)(env);		env->connection_status = SERVICE_NOT_CONNECTED;	}	return NULL;}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */int default_multiple_deliver(SMS_list *node, char *message, DRIVER_DEFAULT_ENV *env){	char 	*msisdn, 		*name;	int 	error;	msisdn = get_number(node);	name   = get_name(node);	lprintf(LOG_VERBOSE, "Name     :%s\n", name);	lprintf(LOG_VERBOSE, "Number   :%s\n", msisdn);	if (env->connection_status == SERVICE_NOT_CONNECTED)	{		env->connection_status = SERVICE_CONNECTED;	 	error = (* env->device->dial)(env);		if (error)		{	return error;		}		error = (* env->device->login)();		if (error)		{	return error;		}	}	error = (* env->device->sendmessage)(msisdn, message);	if (error)	{	return error;	}	return 0;}/* -------------------------------------------------------------------- *//* Send as many messages as we are allowed.				*//* Keep track of number of messages sent and compare against		*//* Max allowed, disconnecting when number sent reaches			*//* the max allowed.							*//* -------------------------------------------------------------------- */int default_multiple_counted_deliver(SMS_list *node, char *message, DRIVER_DEFAULT_ENV *env){	char 	*msisdn, 		*name;	int 	error;	msisdn = get_number(node);	name   = get_name(node);	lprintf(LOG_VERBOSE, "Name     :%s\n", name);	lprintf(LOG_VERBOSE, "Number   :%s\n", msisdn);	if (env->connection_status == SERVICE_NOT_CONNECTED)	{		env->num_sent          = 0;		env->connection_status = SERVICE_CONNECTED;	 	error = (* env->device->dial)(env);		if (error)		{	return error;		}		error = (* env->device->login)();		if (error)		{	return error;		}	}	error = (* env->device->sendmessage)(msisdn, message);	if (error)	{	return error;	}	env->num_sent++;	lprintf(LOG_VERBOSE, "Num sent    = %ld\n", env->num_sent);	lprintf(LOG_VERBOSE, "Max deliver = %ld\n", env->max_deliver);	if ((env->max_deliver != 0) && 	    (env->num_sent >= env->max_deliver))	{		(* env->device->disconnect)();		(* env->device->hangup)(env);		env->connection_status = SERVICE_NOT_CONNECTED;	}	return 0;}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */int default_send_disconnect(void){	return 0;}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */int default_single_deliver(SMS_list *node, char *message, DRIVER_DEFAULT_ENV *env){	char 	*msisdn, 		*name;	int 	error;		msisdn = get_number(node);	name   = get_name(node);	lprintf(LOG_VERBOSE, "Name     :%s\n", name);	lprintf(LOG_VERBOSE, "Number   :%s\n", msisdn);	env->connection_status = SERVICE_CONNECTED;	error = (* env->device->dial)(env);	if (error)	{	return error;	}	error = (* env->device->login)();	if (error)	{	return error;	}	error = (* env->device->sendmessage)(msisdn, message);	if (error)	{	return error;	}	(* env->device->disconnect)();	(* env->device->hangup)(env);	env->connection_status = SERVICE_NOT_CONNECTED;	return 0;}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */int default_validate_numeric_id(char *id){	return is_numeric(id);}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */int default_validate_always_true(char *id){	return TRUE;}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */void default_init(char *mservice, DEVICE_ENTRY *device){	char fname[1024];	sms_strcpy(fname, SERVICEDIR);	sms_strcat(fname, "/services/");	sms_strcat(fname, mservice);	if (read_resource_file(fname, device->resource_list, TRUE) != RESOURCE_FILE_OK)	{	lprintf(LOG_ERROR, "Unrecoverable Failure Parsing file %s\n", fname); 		exit(1);	}	device->env->device = device;}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */int default_login(void){	return 0;}/* -------------------------------------------------------------------- *//* -------------------------------------------------------------------- */int default_sendmessage(char *msisdn, char *message){	return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品一区二区三区福利| 久久精品这里都是精品| 欧美日韩免费观看一区三区| 欧美一二三区在线| 国产午夜精品久久| 亚洲尤物在线视频观看| 视频一区视频二区中文| 成人av动漫网站| 欧美xxxxxxxxx| 日韩一区中文字幕| 韩国女主播一区二区三区| 色婷婷av一区二区三区之一色屋| 538prom精品视频线放| 国产拍揄自揄精品视频麻豆| 五月天激情小说综合| 不卡视频在线观看| 日韩一级欧美一级| 亚洲一区二区综合| av不卡免费在线观看| 26uuu国产一区二区三区| 亚洲黄色免费网站| 国产91对白在线观看九色| 91精品国产色综合久久不卡蜜臀 | 国产精品高清亚洲| 麻豆精品视频在线| 欧美日韩免费一区二区三区| 亚洲精品视频观看| 91视频免费看| 国产精品人成在线观看免费| 视频一区免费在线观看| 欧美亚日韩国产aⅴ精品中极品| 1区2区3区精品视频| 色综合中文综合网| 国产99久久久久久免费看农村| 欧美一区二视频| 久久99精品久久只有精品| 欧美大白屁股肥臀xxxxxx| 日本视频一区二区| 精品国产凹凸成av人网站| 久久99精品网久久| 中文字幕第一页久久| 97成人超碰视| 午夜欧美大尺度福利影院在线看| 欧美中文字幕一区| 国内一区二区视频| 亚洲人亚洲人成电影网站色| 欧美性猛片xxxx免费看久爱| 亚洲一区二区三区视频在线| 日韩欧美国产不卡| 国产**成人网毛片九色| 中文字幕永久在线不卡| 欧美一级高清片| 成人性生交大合| 日韩精品亚洲一区| 国产精品欧美一区二区三区| 欧美在线短视频| 福利一区二区在线观看| 亚洲一区二区三区四区五区黄| 精品毛片乱码1区2区3区| 一本到高清视频免费精品| 麻豆精品视频在线| 日韩中文字幕1| 亚洲女与黑人做爰| 国产欧美久久久精品影院| 日韩午夜在线影院| 欧美色国产精品| eeuss影院一区二区三区| 免费观看在线色综合| 一区二区三区成人| 综合久久给合久久狠狠狠97色 | 欧美国产欧美综合| 精品国产乱码久久久久久影片| 一本色道久久加勒比精品| 成人av免费在线播放| 国产一区二区毛片| 国内成+人亚洲+欧美+综合在线| 午夜精品福利在线| 日韩一区精品视频| 亚洲图片欧美一区| 香蕉成人啪国产精品视频综合网| 亚洲美女精品一区| 亚洲一区在线播放| 亚洲电影中文字幕在线观看| 亚洲电影激情视频网站| 亚洲成在人线在线播放| 亚洲一区免费视频| 日本特黄久久久高潮| 日本三级韩国三级欧美三级| 国产精品久久免费看| 亚洲美女少妇撒尿| 午夜精品一区二区三区电影天堂 | 91国内精品野花午夜精品| 欧美一区日本一区韩国一区| 色悠悠久久综合| 在线不卡中文字幕播放| 精品福利一二区| 亚洲国产另类精品专区| 激情五月播播久久久精品| www.亚洲人| 欧美一区二区三区在线| 久久久久久久综合日本| 亚洲视频免费看| 国内久久精品视频| 欧美三级在线播放| 国产精品国产自产拍高清av| 亚洲精品va在线观看| 国内精品久久久久影院一蜜桃| 99精品久久只有精品| 久久奇米777| 日本午夜精品视频在线观看| av电影天堂一区二区在线观看| 欧美一级一级性生活免费录像| 亚洲综合丝袜美腿| 色哟哟日韩精品| 最新国产成人在线观看| 国产成人在线视频免费播放| 欧美一区欧美二区| 天天影视色香欲综合网老头| 99精品视频中文字幕| 国产亚洲人成网站| 97精品国产97久久久久久久久久久久| 91精品国产综合久久福利| 亚洲午夜久久久久久久久电影网 | 国产精品嫩草影院com| 国产福利精品一区| 久久免费看少妇高潮| 成人综合激情网| 国产精品美女久久久久aⅴ| 精品一区二区三区欧美| 国产亚洲欧美日韩在线一区| 国产成人综合网站| 中文字幕一区视频| 欧美日韩一区精品| 免费观看在线综合| 久久综合九色综合欧美就去吻| 国产成人在线色| 国产欧美1区2区3区| 99国产精品一区| 亚洲成人动漫av| 久久久久久9999| 在线亚洲+欧美+日本专区| 免费成人在线观看| 中文字幕一区在线| 欧美在线观看视频在线| 日本亚洲一区二区| 日本一区二区三区高清不卡| 91免费小视频| 久久精品国产99久久6| 国产精品丝袜久久久久久app| 欧美三级乱人伦电影| 福利电影一区二区| 日本特黄久久久高潮| 一区二区三区免费网站| www国产成人免费观看视频 深夜成人网| av在线播放不卡| 国产一区二区不卡在线| 蜜桃久久精品一区二区| 精品欧美黑人一区二区三区| 国产一区二区三区久久悠悠色av| 久久久久久黄色| 韩国欧美国产1区| 久久久久久久久久美女| 久久精品999| 国产精品日韩成人| 精品一区二区三区在线视频| 精品国内二区三区| 欧美日韩国产在线播放网站| 欧美猛男超大videosgay| 日韩午夜在线观看| 国产婷婷色一区二区三区在线| 久久一区二区三区国产精品| 中文字幕亚洲不卡| 午夜久久久久久久久久一区二区| 精品无码三级在线观看视频 | 亚洲成av人在线观看| 国产成人亚洲综合a∨婷婷图片| 99久久久免费精品国产一区二区| 欧美猛男男办公室激情| 亚洲国产成人自拍| 五月天精品一区二区三区| 另类欧美日韩国产在线| 成人午夜视频在线观看| 色偷偷久久一区二区三区| 欧美精品 日韩| 国产精品乱人伦| 香蕉乱码成人久久天堂爱免费| 精品一区二区三区在线观看国产| 成人丝袜视频网| 日韩一区二区三区在线观看| 国产色婷婷亚洲99精品小说| 亚洲一区在线视频观看| 国产精品一区二区久久不卡| 欧洲另类一二三四区| 精品电影一区二区| 亚洲电影你懂得| 北条麻妃国产九九精品视频| 日韩精品资源二区在线| 樱桃国产成人精品视频| 成人黄色在线看| 精品成人佐山爱一区二区|