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

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

?? mms_util.h

?? 手機端彩信的編解碼、以及接收和發送。非常有用。
?? H
字號:
/*
 * Mbuni - Open  Source MMS Gateway 
 * 
 * Misc. functions
 * 
 * Copyright (C) 2003 - 2005, Digital Solutions Ltd. - http://www.dsmagic.com
 *
 * Paul Bagyenda <bagyenda@dsmagic.com>
 * 
 * This program is free software, distributed under the terms of
 * the GNU General Public License, with a few exceptions granted (see LICENSE)
 */ 
#ifndef __MMS_UTIL__INCLUDED__
#define __MMS_UTIL__INCLUDED__

#include "gwlib/gwlib.h"
#include "gwlib/mime.h"
#include "gwlib/regex.h"

#include "mbuni-config.h"
#include "mms_strings.h"
#include "mms_msg.h"
#include "mms_mm7soap.h"
#include "mms_cfg.h"
#include "mms_mmbox.h"

/* supported 3GPP MMS version */
#define MAKE_VERSION(a,b,c) ((a)<<16 | (b)<<8 | (c))

#define MAJOR_VERSION(v) (((v)>>16)&0xF)
#define MINOR1_VERSION(v) (((v)>>8)&0xF)
#define MINOR2_VERSION(v) ((v)&0xF)

#define MMS_3GPP_VERSION MAKE_VERSION(5,5,0)

/* Send errors */
#define MMS_SEND_OK 0
#define MMS_SEND_QUEUED 1
#define MMS_SEND_ERROR_TRANSIENT -1
#define MMS_SEND_ERROR_FATAL -2

#define SEND_ERROR_STR(e) ((e) == MMS_SEND_OK ? "Sent" : \
             (e) == MMS_SEND_ERROR_TRANSIENT ? "Retry later" : \
             ((e) == MMS_SEND_QUEUED ? "Queued" : "Failed"))
/* Useful headers. */
#define XMSISDN_HEADER  "X-WAP-Network-Client-MSISDN"
#define XIP_HEADER  "X-WAP-Network-Client-IP"
#define MM_NAME "Mbuni"

#define EAIF_VERSION "%d.%d"

/* used by mmbox and queue code -- directory stuff. */
#define _TT "0123456789abcdefghijklmnopqrstuvwxyz"
#define _TTSIZE (-1 + sizeof _TT)


/* Global variables and shared code used by all modules. */

#define MMSC_VERSION MBUNI_VERSION
#define MMS_NAME PACKAGE

#define DRM_CONTENT_TYPE(ctype) (octstr_case_search(ctype, octstr_imm("application/vnd.oma.drm"), 0) == 0)

/* Message location flags: Used to distinguish fetch-urls */
enum mms_loc_t {MMS_LOC_MMBOX = 1, MMS_LOC_MQUEUE=2};


extern int mms_load_core_settings(mCfgGrp *cgrp);

extern Octstr *mms_maketransid(char *qf, Octstr *mmscname);

extern Octstr *mms_getqf_fromtransid(Octstr *transid);

extern Octstr *mms_isodate(time_t t);
void mms_lib_init(void);
void mms_lib_shutdown(void);

/* get content type while stripping params. If any param is null, fails. */
int get_content_type(List *hdrs, Octstr **type, Octstr **params);

/* Takes a header value, returns the value proper and any parameters... */
int split_header_value(Octstr *value, Octstr **base_value, Octstr **params);
/* Returns a list of parameters as http_headers given the semi-comma delimited string.*/
List  *get_value_parameters(Octstr *params);

Octstr *make_value_parameters(List *params);

/* Where value is comma-separated, make separate header items. */
void unpack_mimeheaders(MIMEEntity *m);

/* Where element has base64 encoding, decode. */
void unbase64_mimeparts(MIMEEntity *m);

/* Where element contains binary data, encode it base64. Set all = 1 to ignore whether body is binary
 * and should be coded. 
 */
void base64_mimeparts(MIMEEntity *m, int all);


/* Send this message to email recipient: Returns 0 on success 1 or 2 on profile error 
 * (negate to get right one), -ve on some other error
 */
int mms_sendtoemail(Octstr *from, Octstr *to, 
		    Octstr *subject, Octstr *msgid,
		    MmsMsg *msg, int dlr, Octstr **error,
		    char *sendmail_cmd, Octstr *myhostname, 
		    int trans_msg,
		    int trans_smil, char *txt, char *html, int mm4,
		    char *transid);

/* Send directly to email. */
int mm_send_to_email(Octstr *to, Octstr *from, Octstr *subject, 
		      Octstr *msgid,
		      MIMEEntity *m, int append_hostname, Octstr **error, 
		      char *sendmail_cmd, Octstr *myhostname);

/* log to access log. */
void mms_log(char *logmsg, Octstr *from, List *to, 
	     int msize, Octstr *msgid,
	     Octstr *acct,
	     Octstr *viaproxy,
	     char *interface, 
	     Octstr *ua, Octstr *mmboxloc);

void mms_log2(char *logmsg, Octstr *from, Octstr *to, 
	      int msize, Octstr *msgid,
	      Octstr *acct,
	      Octstr *viaproxy,
	      char *interface, 
	      Octstr *ua, Octstr *mmboxloc);

/*
 * lockfile: tries to lock a file, returns 0 if success, errno (which could be +ve) otherwise.
 * we use flock()
 */
int mm_lockfile(int fd, char *fname, int shouldblock);


/* Returns true if the character is printable or space */
int _mms_gw_isprint(int c);

/* Special form of cfg_get which returns zero-length string when there is nothing. */
Octstr *_mms_cfg_getx(mCfgGrp *grp, Octstr *item);

/* Get envelope data from message headers. */
void mms_collect_envdata_from_msgheaders(List *mh, List **xto, 
					 Octstr **subject, 
					 Octstr **otransid, time_t *expiryt, 
					 time_t *deliveryt, long default_msgexpiry);

/* Simple hash function */
unsigned long _mshash(char *s);

/* Tell us whether address is a phone number. */
int isphonenum(Octstr *s);
/* Fixup an address: Normalize number (if prefix given), Add type, etc. */
void _mms_fixup_address(Octstr *address, char *unified_prefix);

/* Check that host is one of hosts in semi-colon separated list in host_list */
int is_allowed_host(Octstr *host, Octstr *host_list);

/* escape (backlash) special shell characters. */
void escape_shell_chars(Octstr *str);

/* Parse CGI variables out of a HTTP POST request. 
 * This function understands both standard POST and enctype multipart/form-data
 * For the latter it puts the content type of each of the variables found into 
 * cgivars_ctypes (as HTTPCGIVars where name is the field name and value is the content type)
 * cgivars argument is the cgivars as passed to us by http_accept_request. For GET
 * HTTP requests this is returned unchanged, otherwise it is augmented with the 
 * variables found.
 */
int parse_cgivars(List *request_headers, Octstr *request_body,
		  List **cgivars, List **cgivar_ctypes);

/* get content-ID header, fix: WAP decoder may leave " at beginning */
Octstr *_x_get_content_id(List *headers);

/* Remove the boundary element from a list of headers. */
void strip_boundary_element(List *headers, char *s);

/* Fetch a URL. If necessary, authenticate, etc. also understands data: url scheme. */
int mms_url_fetch_content(int method, Octstr *url, List *request_headers, 
			  Octstr *body, List **reply_headers, Octstr **reply_body);

/* check that the token is valid. */
int  mms_is_token(Octstr *token);

/* try to guess content type from file name extension. */
Octstr *filename2content_type(char *fname);

/* try to give a good extension name based on the content type. */
char *content_type2file_ext(Octstr *ctype);

#define MAXQTRIES 100
#define BACKOFF_FACTOR 5*60       /* In seconds */
#define QUEUERUN_INTERVAL 1*60   /* 1 minutes. */
#define DEFAULT_EXPIRE 3600*24*7  /* One week */
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美网站一区二区| 国产精品久久久久毛片软件| www久久精品| 亚洲理论在线观看| 国产激情一区二区三区| 欧美视频在线观看一区| 国产欧美一区二区精品性色 | 香蕉成人啪国产精品视频综合网| 极品尤物av久久免费看| 欧洲生活片亚洲生活在线观看| 精品粉嫩aⅴ一区二区三区四区 | 成人国产在线观看| 欧美xxx久久| 亚洲成人中文在线| aaa亚洲精品一二三区| 国产亚洲精品超碰| 麻豆91免费看| 91精品国产综合久久久久久 | 91小视频在线观看| 国产日本亚洲高清| 激情六月婷婷久久| 精品剧情在线观看| 免费在线观看成人| 欧美日韩国产美女| 亚洲国产精品视频| 精品视频一区二区三区免费| 亚洲欧美电影院| 91亚洲精品久久久蜜桃网站| 国产精品久久久久久久岛一牛影视| 激情伊人五月天久久综合| 日韩一区二区电影| 青青青爽久久午夜综合久久午夜 | 不卡一区二区三区四区| 日本一区二区三级电影在线观看 | 欧美成人三级在线| 久久精品99国产精品| 欧美成人综合网站| 韩国欧美国产一区| 国产肉丝袜一区二区| 国产成人午夜片在线观看高清观看| 精品久久久久久久久久久久久久久| 免费视频最近日韩| 日韩欧美国产电影| 国产美女在线精品| 国产精品色呦呦| 色欲综合视频天天天| 一区二区三区在线观看视频| 欧美做爰猛烈大尺度电影无法无天| 亚洲国产裸拍裸体视频在线观看乱了| 色播五月激情综合网| 一卡二卡欧美日韩| 91精品国产麻豆国产自产在线 | 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 亚洲欧美偷拍另类a∨色屁股| 97久久精品人人澡人人爽| 亚洲欧美自拍偷拍色图| 欧美三级中文字幕| 蜜桃久久久久久| 欧美国产一区二区在线观看| 色婷婷综合五月| 日韩av网站免费在线| 国产三级精品三级在线专区| 色婷婷久久99综合精品jk白丝| 日韩精品国产精品| 久久久夜色精品亚洲| 91毛片在线观看| 日本美女一区二区三区视频| 中文久久乱码一区二区| 欧美在线观看视频一区二区 | 日韩一区二区电影网| 福利电影一区二区| 亚洲高清免费观看 | 欧美精品精品一区| 久久99精品久久久| 一区二区三区在线播放| 欧美成人精品二区三区99精品| av电影在线观看一区| 日本三级韩国三级欧美三级| 日本一区二区高清| 5858s免费视频成人| 9i看片成人免费高清| 琪琪久久久久日韩精品| 亚洲三级在线免费观看| 精品国产伦理网| 欧美日韩中文国产| 国产精品888| 奇米影视在线99精品| 亚洲精品成人在线| 国产日韩欧美一区二区三区乱码| 欧美日韩高清一区二区| 99精品视频中文字幕| 国产一区福利在线| 午夜精品一区二区三区免费视频 | 欧美日韩一区二区三区不卡| 99热精品一区二区| 精品一区二区国语对白| 亚洲一区二区三区在线| 中文字幕视频一区二区三区久| 精品电影一区二区三区| 欧美另类z0zxhd电影| 色猫猫国产区一区二在线视频| 国产成人av一区二区| 国产揄拍国内精品对白| 奇米一区二区三区av| 日韩在线一区二区| 亚洲h精品动漫在线观看| 亚洲欧美激情视频在线观看一区二区三区 | 精品福利一二区| 欧美一级一区二区| 91精品国产综合久久国产大片 | 成人av先锋影音| 国产精品一区一区| 激情综合五月天| 九色porny丨国产精品| 精品一区二区在线视频| 蜜臀久久久久久久| 蜜桃视频第一区免费观看| 蜜臀va亚洲va欧美va天堂| 蜜臀精品一区二区三区在线观看| 欧美96一区二区免费视频| 午夜精品成人在线| 秋霞午夜av一区二区三区| 日韩精彩视频在线观看| 男女激情视频一区| 美女一区二区久久| 国产精一区二区三区| 国产精品综合视频| 成人一级片在线观看| a在线欧美一区| 欧美综合在线视频| 911国产精品| 精品成人在线观看| 国产欧美日韩三区| 一区二区在线观看av| 午夜精品国产更新| 国内精品国产成人国产三级粉色| 国产福利一区二区| 92国产精品观看| 欧美精品第1页| 亚洲精品一区二区三区影院| 国产精品日韩成人| 亚洲国产精品久久久男人的天堂| 日韩高清中文字幕一区| 精品一区二区综合| yourporn久久国产精品| 欧美色图在线观看| 精品成人一区二区| 亚洲欧美乱综合| 精一区二区三区| 99久久99久久综合| 日韩女优av电影在线观看| 国产精品久久久久久一区二区三区| 亚洲一区二区三区三| 黄色日韩网站视频| 欧美亚洲国产bt| 精品成人免费观看| 亚洲精品国产一区二区精华液| 日韩激情中文字幕| 91香蕉视频污在线| 日韩一区二区免费在线电影| 日韩一区在线播放| 久久99精品久久久| 欧美色爱综合网| 国产精品伦理在线| 日本亚洲欧美天堂免费| 91欧美一区二区| 欧美精品一区二区三区久久久| 一卡二卡欧美日韩| 成人美女在线观看| www国产精品av| 天天色综合成人网| 91捆绑美女网站| 亚洲国产精品成人综合色在线婷婷| 丝袜诱惑亚洲看片| 91免费观看在线| 中文字幕av一区 二区| 久久99精品国产.久久久久 | 亚洲电影你懂得| 成+人+亚洲+综合天堂| 欧美成人video| 亚洲午夜私人影院| 99久久久国产精品| 欧美韩国日本不卡| 国产美女在线观看一区| 欧美一区二区成人6969| 一区二区三区精品| 99久久婷婷国产综合精品 | 国内精品嫩模私拍在线| 欧美日韩aaaaa| 亚洲大尺度视频在线观看| 91网站视频在线观看| 国产精品免费网站在线观看| 国产精品伊人色| 欧美精品一区二区高清在线观看| 日韩黄色免费电影| 欧美剧在线免费观看网站| 亚洲综合在线第一页| 91国产视频在线观看| 亚洲自拍偷拍综合| 欧美性极品少妇|