⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 resin.h

📁 RESIN 3.2 最新源码
💻 H
字号:
/* * Copyright (c) 1999-2008 Caucho Technology.  All rights reserved. */#ifndef RESIN_H#define RESIN_H#undef RESIN_DIRECT_JNI_BUFFER#ifdef B64#define PTR jlong#else#define PTR jint#endif/* Threading */#ifdef WIN32#define pthread_t HANDLE#define pthread_self() GetCurrentThread()#define pthread_kill(thread,signal) ThreadInterrupt(thread)#define pthread_mutex_t HANDLE#define pthread_mutex_init(x,y)#define pthread_mutex_lock(x) WaitForSingleObject(*(x), INFINITE);#define pthread_mutex_unlock(x) ReleaseMutex(*(x))#define ECONNRESET EPIPE#else#undef closesocket#define closesocket(x) close(x)#ifdef __SOLARIS__#include <thread.h>#include <synch.h>#define pthread_mutex_t mutex_t#define pthread_mutex_lock(x) mutex_lock(x)#define pthread_mutex_unlock(x) mutex_unlock(x)#define pthread_cond_t cond_t#define pthread_cond_wait(cond,mutex) cond_wait(cond,mutex)#define pthread_cond_signal(x) cond_signal(x)#define pthread_t thread_t#define pthread_create(thread_id, foo, start, arg) \        thr_create(0, 0, start, arg, 0, thread_id)#else#include <pthread.h>#endif#endiftypedef struct connection_t connection_t;typedef struct connection_ops_t {  int (*read) (connection_t *conn, char *buf, int len, int timeout);  int (*read_nonblock) (connection_t *conn, char *buf, int len);  int (*write) (connection_t *conn, char *buf, int len);  int (*write_nonblock) (connection_t *conn, char *buf, int len);  int (*close) (connection_t *conn);  int (*read_client_certificate) (connection_t *conn, char *buf, int len);} connection_ops_t;struct connection_t {  struct server_socket_t *ss;    int id;  JNIEnv *jni_env;    void *context;  connection_ops_t *ops;  int fd;  int is_init;  void *sock;  pthread_mutex_t *ssl_lock;  int socket_timeout;  int sent_data;  char server_data[128];  struct sockaddr *server_sin;  char client_data[128];  struct sockaddr *client_sin;  char *ssl_cipher;  int ssl_bits;#ifdef WIN32  //WSAEVENT event;#endif};typedef struct server_socket_t server_socket_t;typedef struct resin_t {  int count;  int (*get_server_socket)(struct resin_t *);} resin_t;typedef struct ssl_config_t {  JNIEnv *jni_env;    char *certificate_file;  char *key_file;    char *certificate_chain_file;  char *ca_certificate_path;  char *ca_certificate_file;  char *ca_revocation_path;  char *ca_revocation_file;    char *password;  char *crypto_device;  int alg_flags;  int enable_session_cache;  int session_cache_timeout;  int unclean_shutdown;  int verify_client;  int verify_depth;  char *cipher_suite;  void *crl;    pthread_mutex_t ssl_lock;} ssl_config_t;struct server_socket_t {  ssl_config_t *ssl_config;    int conn_socket_timeout;    int fd;  int port;  pthread_mutex_t ssl_lock;  pthread_mutex_t accept_lock;  int verify_client;  /* ssl context */  void *context;    int (*accept) (server_socket_t *ss, connection_t *conn);  void (*close) (server_socket_t *ss);  int server_index;  /* JniSocketImpl fields */  jfieldID _localAddrBuffer;  jfieldID _localAddrLength;  jfieldID _localPort;    jfieldID _remoteAddrBuffer;  jfieldID _remoteAddrLength;  jfieldID _remotePort;    jfieldID _isSecure;};#define ALG_SSL2 0x01#define ALG_SSL3 0x02#define ALG_TLS1 0x04#define Q_VERIFY_NONE 0#define Q_VERIFY_OPTIONAL_NO_CA 1#define Q_VERIFY_OPTIONAL 2#define Q_VERIFY_REQUIRE 3/* memory.c */void cse_mem_init();void cse_free(void *);void *cse_malloc(int size);/* std.c */extern struct connection_ops_t std_ops;int std_accept(server_socket_t *ss, connection_t *conn);void std_close_ss(server_socket_t *ss);int conn_close(connection_t *conn);/* ssl.c */int ssl_create(server_socket_t *ss, ssl_config_t *config);connection_ops_t *ssl_get_ops();/* java.c */void resin_printf_exception(JNIEnv *env, const char *cl, const char *fmt, ...);void resin_throw_exception(JNIEnv *env, const char *cl, const char *buf);#define INTERRUPT_EXN -2#define DISCONNECT_EXN -3#define TIMEOUT_EXN -4#ifndef EWOULDBLOCK#define EWOULDBLOCK EAGAIN#endif#ifdef _JAVA_JVMTI_H_struct lru_cache_t *profile_create(jvmtiEnv *env, int size);voidprofile_add_stack(JNIEnv *jniEnv,                  jvmtiEnv *jvmti,		  struct lru_cache_t *cache,		  jvmtiStackInfo *info,		  jlong size);jobjectprofile_display(JNIEnv *jniEnv,		jvmtiEnv *jvmti,		struct lru_cache_t *cache,                int max);voidprofile_clear(jvmtiEnv *jvmti,	      struct lru_cache_t *cache);struct symbol_table_t *symbol_table_create(jvmtiEnv *jvmti);char *symbol_table_add(jvmtiEnv *jvmti,           struct symbol_table_t *symbol_table,           const char *name);#endifjlong crc64_generate(jlong crc, char *value);#endif /* RESIN_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -