本文整理汇总了C++中register_signal函数的典型用法代码示例。如果您正苦于以下问题:C++ register_signal函数的具体用法?C++ register_signal怎么用?C++ register_signal使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了register_signal函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: start_plugin
void start_plugin()
{
print_debug("%s : start_plugin\n", GGadu_PLUGIN_NAME);
register_signal(update_handler, "update config");
register_signal(update_handler, "get current version");
print_debug("%s : create menu\n", GGadu_PLUGIN_NAME);
menu_updatemenu = update_menu();
signal_emit(GGadu_PLUGIN_NAME, "gui register menu", menu_updatemenu, "main-gui");
if (timer != -1)
g_source_remove(timer);
/* initialize timers */
if ((gint) ggadu_config_var_get(update_handler, "check_automatically"))
{
timer = g_timeout_add(update_get_interval(), update_check, NULL);
print_debug("%s : Timer ID set to %d\n", GGadu_PLUGIN_NAME, timer);
}
else
{
print_debug("%s : Resetting timer!\n", GGadu_PLUGIN_NAME);
timer = -1;
}
if ((gint) ggadu_config_var_get(update_handler, "check_on_startup"))
/* wait a while before looking for updates */
g_timeout_add(3000, update_check_on_startup, NULL);
}
开发者ID:krzyzanowskim,项目名称:GNUGadu,代码行数:29,代码来源:update_plugin.c
示例2: signals_init
void signals_init()
{
register_signal(SIGUSR1, sigusr1);
register_signal(SIGUSR2, sigusr2);
register_signal(SIGALRM, sigalarm);
register_signal(SIGHUP, sighup);
}
开发者ID:eric321,项目名称:soepkiptng,代码行数:7,代码来源:signals.c
示例3: print_debug
/* PLUGIN INITIALISATION */
GGaduPlugin *initialize_plugin(gpointer conf_ptr)
{
gchar *this_configdir;
print_debug("%s : initialize\n", GGadu_PLUGIN_NAME);
GGadu_PLUGIN_ACTIVATE(conf_ptr); /* THIS IS IMPORTANT HERE */
handler = (GGaduPlugin *) register_plugin(GGadu_PLUGIN_NAME, _("External player sound driver"));
SOUND_PLAY_FILE_SIG = register_signal(handler, "sound play file");
UPDATE_CONFIG_SIG = register_signal(handler, "update config");
if (g_getenv("HOME_ETC"))
this_configdir = g_build_filename(g_getenv("HOME_ETC"), "gg2", NULL);
else
this_configdir = g_build_filename(g_get_home_dir(), ".gg2", NULL);
ggadu_config_set_filename((GGaduPlugin *) handler, g_build_filename(this_configdir, "my-plugin", NULL));
ggadu_config_var_add(handler, "player", VAR_STR);
if (!ggadu_config_read(handler))
g_warning(_("Unable to read configuration file for plugin %s"), "");
register_signal_receiver((GGaduPlugin *) handler, (signal_func_ptr) my_signal_receive);
g_free(this_configdir);
return handler;
}
开发者ID:krzyzanowskim,项目名称:GNUGadu,代码行数:29,代码来源:my_plugin.c
示例4: read_incoming_tun
void
read_incoming_tun (struct context *c)
{
/*
* Setup for read() call on TUN/TAP device.
*/
/*ASSERT (!c->c2.to_link.len);*/
perf_push (PERF_READ_IN_TUN);
c->c2.buf = c->c2.buffers->read_tun_buf;
#ifdef TUN_PASS_BUFFER
read_tun_buffered (c->c1.tuntap, &c->c2.buf, MAX_RW_SIZE_TUN (&c->c2.frame));
#else
ASSERT (buf_init (&c->c2.buf, FRAME_HEADROOM (&c->c2.frame)));
ASSERT (buf_safe (&c->c2.buf, MAX_RW_SIZE_TUN (&c->c2.frame)));
c->c2.buf.len = read_tun (c->c1.tuntap, BPTR (&c->c2.buf), MAX_RW_SIZE_TUN (&c->c2.frame));
#endif
#ifdef PACKET_TRUNCATION_CHECK
ipv4_packet_size_verify (BPTR (&c->c2.buf),
BLEN (&c->c2.buf),
TUNNEL_TYPE (c->c1.tuntap),
"READ_TUN",
&c->c2.n_trunc_tun_read);
#endif
/* Was TUN/TAP interface stopped? */
if (tuntap_stop (c->c2.buf.len))
{
register_signal (c, SIGTERM, "tun-stop");
msg (M_INFO, "TUN/TAP interface has been stopped, exiting");
perf_pop ();
return;
}
/* Was TUN/TAP I/O operation aborted? */
if (tuntap_abort(c->c2.buf.len))
{
register_signal(c, SIGHUP, "tun-abort");
c->persist.restart_sleep_seconds = 10;
msg(M_INFO, "TUN/TAP I/O operation aborted, restarting");
perf_pop();
return;
}
/* Check the status return from read() */
check_status (c->c2.buf.len, "read from TUN/TAP", NULL, c->c1.tuntap);
perf_pop ();
}
开发者ID:nirmoy,项目名称:openvpn,代码行数:51,代码来源:forward.c
示例5: main
int main (int argc, char *argv)
{
register_signal(SIGUSR1);
register_signal(SIGUSR2);
/* Busy wait for the child to send a signal. */
while (!usr_interrupt){
sleep(100000);
}
/* Now continue execution. */
puts ("That's all, folks!");
return 0;
}
开发者ID:7LK,项目名称:McWRT,代码行数:15,代码来源:leds_monitor.c
示例6: check_add_routes_dowork
void
check_add_routes_dowork (struct context *c)
{
if (test_routes (c->c1.route_list, c->c1.tuntap))
{
check_add_routes_action (c, false);
}
else if (event_timeout_trigger (&c->c2.route_wakeup_expire, &c->c2.timeval, ETT_DEFAULT))
{
check_add_routes_action (c, true);
}
else
{
msg (D_ROUTE, "Route: Waiting for TUN/TAP interface to come up...");
if (c->c1.tuntap)
{
if (!tun_standby (c->c1.tuntap))
{
register_signal (c, SIGHUP, "ip-fail");
c->persist.restart_sleep_seconds = 10;
#ifdef WIN32
show_routes (M_INFO|M_NOPREFIX);
show_adapters (M_INFO|M_NOPREFIX);
#endif
}
}
update_time ();
if (c->c2.route_wakeup.n != 1)
event_timeout_init (&c->c2.route_wakeup, 1, now);
event_timeout_reset (&c->c2.ping_rec_interval);
}
}
开发者ID:ThomasHabets,项目名称:openvpn,代码行数:32,代码来源:forward.c
示例7: check_tls_dowork
void
check_tls_dowork (struct context *c)
{
interval_t wakeup = BIG_TIMEOUT;
if (interval_test (&c->c2.tmp_int))
{
const int tmp_status = tls_multi_process
(c->c2.tls_multi, &c->c2.to_link, &c->c2.to_link_addr,
get_link_socket_info (c), &wakeup);
if (tmp_status == TLSMP_ACTIVE)
{
update_time ();
interval_action (&c->c2.tmp_int);
}
else if (tmp_status == TLSMP_KILL)
{
register_signal (c, SIGTERM, "auth-control-exit");
}
interval_future_trigger (&c->c2.tmp_int, wakeup);
}
interval_schedule_wakeup (&c->c2.tmp_int, &wakeup);
if (wakeup)
context_reschedule_sec (c, wakeup);
}
开发者ID:ThomasHabets,项目名称:openvpn,代码行数:28,代码来源:forward.c
示例8: main
int main(int argc, char *argv[])
{
int fd = 0;
struct aiocb aiocb = {0};
if (argc != 2)
{
fprintf(stderr, "Usage: ./a.out filename1 filename2 ...\n");
return EXIT_FAILURE;
}
register_signal(SIGIO);
fd = open(argv[1], O_RDONLY);
if (fd < 0)
{
fprintf(stderr, "open failure\n");
return EXIT_FAILURE;
}
aiocb.aio_fildes = fd;
aiocb.aio_buf = (volatile void *)malloc(BUFSIZ+1);
aiocb.aio_nbytes = BUFSIZ;
aiocb.aio_sigevent.sigev_notify = SIGEV_SIGNAL;
aiocb.aio_sigevent.sigev_signo = SIGIO;
aiocb.aio_sigevent.sigev_value.sival_ptr = &aiocb;
memset((void *)aiocb.aio_buf, 0, BUFSIZ+1);
aiocb.aio_offset = offset;
aio_read(&aiocb);
sleep(1);
return EXIT_SUCCESS;
}
开发者ID:codeliuer,项目名称:learn-code,代码行数:35,代码来源:aiofunc.c
示例9: ignore_restart_signals
/**
* If a restart signal is received during exit-notification, reset the
* signal and return true. If its a soft restart signal from the event loop
* which implies the loop cannot continue, remap to SIGTERM to exit promptly.
*/
static bool
ignore_restart_signals(struct context *c)
{
bool ret = false;
#ifdef ENABLE_OCC
if ( (c->sig->signal_received == SIGUSR1 || c->sig->signal_received == SIGHUP)
&& event_timeout_defined(&c->c2.explicit_exit_notification_interval) )
{
if (c->sig->source == SIG_SOURCE_HARD)
{
msg(M_INFO, "Ignoring %s received during exit notification",
signal_name(c->sig->signal_received, true));
signal_reset(c->sig);
ret = true;
}
else
{
msg(M_INFO, "Converting soft %s received during exit notification to SIGTERM",
signal_name(c->sig->signal_received, true));
register_signal(c, SIGTERM, "exit-with-notification");
ret = false;
}
}
#endif
return ret;
}
开发者ID:OpenVPN,项目名称:openvpn,代码行数:31,代码来源:sig.c
示例10: incoming_push_message
void
incoming_push_message(struct context *c, const struct buffer *buffer)
{
struct gc_arena gc = gc_new();
unsigned int option_types_found = 0;
int status;
msg(D_PUSH, "PUSH: Received control message: '%s'", sanitize_control_message(BSTR(buffer), &gc));
status = process_incoming_push_msg(c,
buffer,
c->options.pull,
pull_permission_mask(c),
&option_types_found);
if (status == PUSH_MSG_ERROR)
{
msg(D_PUSH_ERRORS, "WARNING: Received bad push/pull message: %s", sanitize_control_message(BSTR(buffer), &gc));
}
else if (status == PUSH_MSG_REPLY || status == PUSH_MSG_CONTINUATION)
{
c->options.push_option_types_found |= option_types_found;
/* delay bringing tun/tap up until --push parms received from remote */
if (status == PUSH_MSG_REPLY)
{
if (!do_up(c, true, c->options.push_option_types_found))
{
msg(D_PUSH_ERRORS, "Failed to open tun/tap interface");
goto error;
}
}
event_timeout_clear(&c->c2.push_request_interval);
}
else if (status == PUSH_MSG_REQUEST)
{
if (c->options.mode == MODE_SERVER)
{
struct tls_session *session = &c->c2.tls_multi->session[TM_ACTIVE];
/* Do not regenerate keys if client send a second push request */
if (!session->key[KS_PRIMARY].crypto_options.key_ctx_bi.initialized
&& !tls_session_update_crypto_params(session, &c->options,
&c->c2.frame))
{
msg(D_TLS_ERRORS, "TLS Error: initializing data channel failed");
goto error;
}
}
}
goto cleanup;
error:
register_signal(c, SIGUSR1, "process-push-msg-failed");
cleanup:
gc_free(&gc);
}
开发者ID:anlaneg,项目名称:openvpn,代码行数:56,代码来源:push.c
示例11: check_server_poll_timeout_dowork
void
check_server_poll_timeout_dowork (struct context *c)
{
event_timeout_reset (&c->c2.server_poll_interval);
if (!tls_initial_packet_received (c->c2.tls_multi))
{
msg (M_INFO, "Server poll timeout, restarting");
register_signal (c, SIGUSR1, "server_poll");
c->persist.restart_sleep_seconds = -1;
}
}
开发者ID:ThomasHabets,项目名称:openvpn,代码行数:11,代码来源:forward.c
示例12: GGadu_PLUGIN_ACTIVATE
/* PLUGIN INITIALISATION */
GGaduPlugin *initialize_plugin(gpointer conf_ptr)
{
GGadu_PLUGIN_ACTIVATE(conf_ptr);
ignore_handler = (GGaduPlugin *) register_plugin(GGadu_PLUGIN_NAME, _("Ignore option support"));
IGNORE_ADD_CONTACT_SIG = register_signal(ignore_handler, "ignore add contact");
IGNORE_REMOVE_CONTACT_SIG = register_signal(ignore_handler, "ignore remove contact");
IGNORE_CHECK_CONTACT_SIG = register_signal(ignore_handler, "ignore check contact");
IGNORE_DIALOG_ADD_ID_SIG = register_signal(ignore_handler, "ignore dialog add id");
IGNORE_DIALOG_REMOVE_ID_SIG = register_signal(ignore_handler, "ignore dialog remove id");
ggadu_config_set_filename(ignore_handler, g_build_filename(config->configdir, "ignore-main", NULL));
ggadu_config_var_add(ignore_handler, "list", VAR_STR);
if (!ggadu_config_read(ignore_handler))
g_warning(_("Unable to read configuration file for plugin %s"), "");
register_signal_receiver(ignore_handler, (signal_func_ptr) my_signal_receive);
return ignore_handler;
}
开发者ID:krzyzanowskim,项目名称:GNUGadu,代码行数:22,代码来源:ignore.c
示例13: print_debug
/* PLUGIN INITIALISATION */
GGaduPlugin *initialize_plugin(gpointer conf_ptr)
{
print_debug("%s : initialize\n", GGadu_PLUGIN_NAME);
GGadu_PLUGIN_ACTIVATE(conf_ptr);
handler = (GGaduPlugin *) register_plugin(GGadu_PLUGIN_NAME, _("External history viewer"));
HISTORY_SHOW_FILE_SIG = register_signal(handler, "history show file");
UPDATE_CONFIG_SIG = register_signal(handler, "update config");
ggadu_config_set_filename((GGaduPlugin *) handler, g_build_filename(config->configdir, "history-external", NULL));
ggadu_config_var_add_with_default(handler, "viewer", VAR_STR, g_build_filename(BINDIR, "gghist %s", NULL));
if (!ggadu_config_read(handler))
g_warning(_("Unable to read configuration file for plugin %s"), "");
register_signal_receiver((GGaduPlugin *) handler, (signal_func_ptr) my_signal_receive);
return handler;
}
开发者ID:krzyzanowskim,项目名称:GNUGadu,代码行数:22,代码来源:history_viewer.c
示例14: start_plugin
void start_plugin()
{
int e;
if ((e = regcomp(®ex, "^([^ ]+)( ([^ ]+)( (.*))?)?$", REG_EXTENDED)) != 0)
{
char *err = get_regerror(e, ®ex);
print_debug("%s: regcomp() failed: %s\n", GGadu_PLUGIN_NAME, err);
print_debug("%s: plugin disabled\n", GGadu_PLUGIN_NAME);
free(err);
return;
}
if (remote_init() == -1)
return;
register_signal(handler, "update config");
/* perfidnie podpinamy siê pod sygna³ dockleta */
register_signal(handler, "docklet set icon");
register_signal(handler, "docklet set default icon");
menu_remotemenu = remote_menu();
signal_emit(GGadu_PLUGIN_NAME, "gui register menu", menu_remotemenu, "main-gui");
}
开发者ID:krzyzanowskim,项目名称:GNUGadu,代码行数:23,代码来源:remote_plugin.c
示例15: print_debug
GGaduPlugin *initialize_plugin(gpointer conf_ptr)
{
print_debug("%s : initialize", GGadu_PLUGIN_NAME);
GGadu_PLUGIN_ACTIVATE(conf_ptr);
handler = (GGaduPlugin *) register_plugin(GGadu_PLUGIN_NAME, _("ESD sound driver"));
SOUND_PLAY_FILE_SIG = register_signal(handler, "sound play file");
register_signal_receiver((GGaduPlugin *) handler, (signal_func_ptr) my_signal_receive);
return handler;
}
开发者ID:krzyzanowskim,项目名称:GNUGadu,代码行数:14,代码来源:plugin_sound_esd.c
示例16: alarm_handler
void alarm_handler(int signal){
if (signal != SIGALRM) {
DBG("Caught wrong signal: %d", signal);
exit(1);
return;
}
//DBG("[SIGNAL] NACK LEN = %d", globals.nackl.num_members);
if ((globals.nackl).num_members != 0) {
// Read the nack list
//print_list(&globals.datal);
send_nack_packet();
// Register another alarm
register_signal();
}
}
开发者ID:BisariaLove,项目名称:UFTP,代码行数:17,代码来源:nack_timer.c
示例17: main
//.........这里部分代码省略.........
case 'd':
case 'i':
case 'o':
case 'f':
case 't':
case 'P':
case 'F':
case 'n':
case 'S':
case 'b':
case 'k':
case 'T':
case 'u':
case 'g':
case 'e':
panic("Option -%c requires an argument!\n",
optopt);
default:
if (isprint(optopt))
printf("Unknown option character `0x%X\'!\n", optopt);
die();
}
default:
break;
}
}
if (!ctx.filter && optind != argc)
ctx.filter = argv2str(optind, argc, argv);
if (!ctx.device_in)
ctx.device_in = xstrdup("any");
register_signal(SIGINT, signal_handler);
register_signal(SIGQUIT, signal_handler);
register_signal(SIGTERM, signal_handler);
register_signal(SIGHUP, signal_handler);
tprintf_init();
if (prio_high) {
set_proc_prio(-20);
set_sched_status(SCHED_FIFO, sched_get_priority_max(SCHED_FIFO));
}
if (device_mtu(ctx.device_in) || !strncmp("any", ctx.device_in, strlen(ctx.device_in))) {
if (ctx.rfraw)
setup_rfmon_mac80211_dev(&ctx, &ctx.device_in);
if (!ctx.link_type)
ctx.link_type = pcap_dev_to_linktype(ctx.device_in);
if (link_has_sll_hdr(ctx.link_type)) {
switch (ctx.magic) {
case ORIGINAL_TCPDUMP_MAGIC:
ctx.magic = ORIGINAL_TCPDUMP_MAGIC_LL;
break;
case NSEC_TCPDUMP_MAGIC:
ctx.magic = NSEC_TCPDUMP_MAGIC_LL;
break;
case ___constant_swab32(ORIGINAL_TCPDUMP_MAGIC):
ctx.magic = ___constant_swab32(ORIGINAL_TCPDUMP_MAGIC_LL);
break;
case ___constant_swab32(NSEC_TCPDUMP_MAGIC):
ctx.magic = ___constant_swab32(NSEC_TCPDUMP_MAGIC_LL);
break;
}
开发者ID:hosttor,项目名称:netsniff-ng,代码行数:67,代码来源:netsniff-ng.c
示例18: process_incoming_link
//.........这里部分代码省略.........
* packet was a good TLS control channel packet. If so, TLS code
* will deal with the packet and set buf.len to 0 so downstream
* stages ignore it.
*
* If the packet is a data channel packet, tls_pre_decrypt
* will load crypto_options with the correct encryption key
* and return false.
*/
if (tls_pre_decrypt (c->c2.tls_multi, &c->c2.from, &c->c2.buf, &c->c2.crypto_options))
{
interval_action (&c->c2.tmp_int);
/* reset packet received timer if TLS packet */
if (c->options.ping_rec_timeout)
event_timeout_reset (&c->c2.ping_rec_interval);
}
}
#if P2MP_SERVER
/*
* Drop non-TLS packet if client-connect script/plugin has not
* yet succeeded.
*/
if (c->c2.context_auth != CAS_SUCCEEDED)
c->c2.buf.len = 0;
#endif
#endif /* ENABLE_SSL */
/* authenticate and decrypt the incoming packet */
decrypt_status = openvpn_decrypt (&c->c2.buf, c->c2.buffers->decrypt_buf, &c->c2.crypto_options, &c->c2.frame);
if (!decrypt_status && link_socket_connection_oriented (c->c2.link_socket))
{
/* decryption errors are fatal in TCP mode */
register_signal (c, SIGUSR1, "decryption-error"); /* SOFT-SIGUSR1 -- decryption error in TCP mode */
msg (D_STREAM_ERRORS, "Fatal decryption error (process_incoming_link), restarting");
goto done;
}
#endif /* ENABLE_CRYPTO */
#ifdef ENABLE_FRAGMENT
if (c->c2.fragment)
fragment_incoming (c->c2.fragment, &c->c2.buf, &c->c2.frame_fragment);
#endif
#ifdef ENABLE_LZO
/* decompress the incoming packet */
if (lzo_defined (&c->c2.lzo_compwork))
lzo_decompress (&c->c2.buf, c->c2.buffers->lzo_decompress_buf, &c->c2.lzo_compwork, &c->c2.frame);
#endif
#ifdef PACKET_TRUNCATION_CHECK
/* if (c->c2.buf.len > 1) --c->c2.buf.len; */
ipv4_packet_size_verify (BPTR (&c->c2.buf),
BLEN (&c->c2.buf),
TUNNEL_TYPE (c->c1.tuntap),
"POST_DECRYPT",
&c->c2.n_trunc_post_decrypt);
#endif
/*
* Set our "official" outgoing address, since
* if buf.len is non-zero, we know the packet
* authenticated. In TLS mode we do nothing
* because TLS mode takes care of source address
* authentication.
开发者ID:ThomasHabets,项目名称:openvpn,代码行数:67,代码来源:forward.c
示例19: register_signal
void TrexWatchDog::init(bool enable){
m_enable = enable;
if (m_enable) {
register_signal();
}
}
开发者ID:cisco-system-traffic-generator,项目名称:trex-core,代码行数:6,代码来源:trex_watchdog.cpp
示例20: check_scheduled_exit_dowork
/*
* Scheduled exit?
*/
void
check_scheduled_exit_dowork (struct context *c)
{
register_signal (c, c->c2.scheduled_exit_signal, "delayed-exit");
}
开发者ID:ThomasHabets,项目名称:openvpn,代码行数:8,代码来源:forward.c
注:本文中的register_signal函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论