logo       

nagios/base Makefile.in,1.15,1.16 broker.c,1.19,1.20 commands.c,1.49,1.50 e: msg#00033

Subject: nagios/base Makefile.in,1.15,1.16 broker.c,1.19,1.20 commands.c,1.49,1.50 events.c,1.26,1.27 nagios.c,1.61,1.62 nagiostats.c,1.9,1.10 nebmods.c,1.3,1.4 utils.c,1.76,1.77
Update of /cvsroot/nagios/nagios/base
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5314/base

Modified Files:
        Makefile.in broker.c commands.c events.c nagios.c nagiostats.c 
        nebmods.c utils.c 
Log Message:
Patches and cleanups

Index: Makefile.in
===================================================================
RCS file: /cvsroot/nagios/nagios/base/Makefile.in,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** Makefile.in 19 Aug 2003 04:19:11 -0000      1.15
--- Makefile.in 25 Oct 2004 05:05:53 -0000      1.16
***************
*** 2,6 ****
  # Makefile for Nagios
  #
! # Last Modified: 08-14-2003
  ############################
  
--- 2,6 ----
  # Makefile for Nagios
  #
! # Last Modified: 10-24-2004
  ############################
  
***************
*** 13,17 ****
--- 13,25 ----
  CC=@CC@
  CFLAGS=@CFLAGS@ @DEFS@ -DNSCORE
+ 
+ # Compiler flags for optimization (overrides default)
  #CFLAGS=-O3 -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align 
-Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -DHAVE_CONFIG_H 
-DNSCORE
+ 
+ # Compiler flags for optimization (complements default)
+ #CFLAGS_WARN=-Wall -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align 
-Wstrict-prototypes -Wmissing-prototypes -Wnested-externs
+ #CFLAGS_DEBUG=-ggdb3 -g3
+ #CFLAGS+=$(CFLAGS_WARN) $(CFLAGS_DEBUG)
+ 
  LDFLAGS=@LDFLAGS@
  LIBS=@LIBS@

Index: nagios.c
===================================================================
RCS file: /cvsroot/nagios/nagios/base/nagios.c,v
retrieving revision 1.61
retrieving revision 1.62
diff -C2 -d -r1.61 -r1.62
*** nagios.c    26 Mar 2004 06:04:04 -0000      1.61
--- nagios.c    25 Oct 2004 05:05:53 -0000      1.62
***************
*** 9,13 ****
   *
   * First Written:   01-28-1999 (start of development)
!  * Last Modified:   03-25-2004
   *
   * Description:
--- 9,13 ----
   *
   * First Written:   01-28-1999 (start of development)
!  * Last Modified:   10-24-2004
   *
   * Description:
***************
*** 557,563 ****
                                }
  
-                       /* free extended info data - we don't need this for 
monitoring */
-                       free_extended_data();
- 
                        /* initialize embedded Perl interpreter */
                        init_embedded_perl();
--- 557,560 ----

Index: broker.c
===================================================================
RCS file: /cvsroot/nagios/nagios/base/broker.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** broker.c    1 Oct 2004 02:43:27 -0000       1.19
--- broker.c    25 Oct 2004 05:05:53 -0000      1.20
***************
*** 4,8 ****
   *
   * Copyright (c) 2002-2003 Ethan Galstad (nagios@xxxxxxxxxx)
!  * Last Modified:   08-26-2003
   *
   * License:
--- 4,8 ----
   *
   * Copyright (c) 2002-2003 Ethan Galstad (nagios@xxxxxxxxxx)
!  * Last Modified:   10-24-2004
   *
   * License:
***************
*** 31,34 ****
--- 31,35 ----
  #include "../include/nebcallbacks.h"
  #include "../include/nebstructs.h"
+ #include "../include/nebmods.h"
  
  extern int             event_broker_options;
***************
*** 85,90 ****
  void broker_timed_event(int type, int flags, int attr, timed_event *event, 
struct timeval *timestamp){
        nebstruct_timed_event_data ds;
-       service *temp_service;
-       host *temp_host;
  
        if(!(event_broker_options & BROKER_TIMED_EVENTS))
--- 86,89 ----

Index: events.c
===================================================================
RCS file: /cvsroot/nagios/nagios/base/events.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -C2 -d -r1.26 -r1.27
*** events.c    10 Feb 2004 04:18:25 -0000      1.26
--- events.c    25 Oct 2004 05:05:53 -0000      1.27
***************
*** 4,8 ****
   *
   * Copyright (c) 1999-2004 Ethan Galstad (nagios@xxxxxxxxxx)
!  * Last Modified:   02-08-2004
   *
   * License:
--- 4,8 ----
   *
   * Copyright (c) 1999-2004 Ethan Galstad (nagios@xxxxxxxxxx)
!  * Last Modified:   10-24-2004
   *
   * License:
***************
*** 1262,1267 ****
  void adjust_check_scheduling(void){
        timed_event *temp_event;
!       service *temp_service;
!       host *temp_host;
        double projected_host_check_overhead=0.9;
        double projected_service_check_overhead=0.1;
--- 1262,1267 ----
  void adjust_check_scheduling(void){
        timed_event *temp_event;
!       service *temp_service=NULL;
!       host *temp_host=NULL;
        double projected_host_check_overhead=0.9;
        double projected_service_check_overhead=0.1;
***************
*** 1277,1281 ****
        double total_check_exec_time=0.0;
        double last_check_exec_time=0.0;
-       int use_host_execution_times=TRUE;
        int adjust_scheduling=FALSE;
        double exec_time_factor=0.0;
--- 1277,1280 ----
***************
*** 1284,1289 ****
        double new_run_time_offset=0.0;
  
-       time_t last_event_time=0L;
- 
  #ifdef DEBUG0
        printf("adjust_check_scheduling() start\n");
--- 1283,1286 ----
***************
*** 1477,1481 ****
        service *temp_service;
        host *temp_host;
-       time_t run_time;
        time_t (*timingfunc)(void);
  
--- 1474,1477 ----

Index: nebmods.c
===================================================================
RCS file: /cvsroot/nagios/nagios/base/nebmods.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** nebmods.c   11 Sep 2003 02:12:27 -0000      1.3
--- nebmods.c   25 Oct 2004 05:05:53 -0000      1.4
***************
*** 3,8 ****
   * NEBMODS.C - Event Broker Module Functions
   *
!  * Copyright (c) 2002-2003 Ethan Galstad (nagios@xxxxxxxxxx)
!  * Last Modified:   09-10-2003
   *
   * License:
--- 3,8 ----
   * NEBMODS.C - Event Broker Module Functions
   *
!  * Copyright (c) 2002-2004 Ethan Galstad (nagios@xxxxxxxxxx)
!  * Last Modified:   10-24-2004
   *
   * License:
***************
*** 441,445 ****
        nebcallback *temp_callback;
        nebcallback *last_callback;
!       nebcallback *next_callback;
  
        if(callback_func==NULL)
--- 441,445 ----
        nebcallback *temp_callback;
        nebcallback *last_callback;
!       nebcallback *next_callback=NULL;
  
        if(callback_func==NULL)

Index: commands.c
===================================================================
RCS file: /cvsroot/nagios/nagios/base/commands.c,v
retrieving revision 1.49
retrieving revision 1.50
diff -C2 -d -r1.49 -r1.50
*** commands.c  1 Oct 2004 02:43:27 -0000       1.49
--- commands.c  25 Oct 2004 05:05:53 -0000      1.50
***************
*** 4,8 ****
   *
   * Copyright (c) 1999-2004 Ethan Galstad (nagios@xxxxxxxxxx)
!  * Last Modified:   09-30-2004
   *
   * License:
--- 4,8 ----
   *
   * Copyright (c) 1999-2004 Ethan Galstad (nagios@xxxxxxxxxx)
!  * Last Modified:   10-24-2004
   *
   * License:
***************
*** 1317,1321 ****
        char *svc_description="";
        char *user;
!       char *comment;
        int persistent=0;
        int result;
--- 1317,1321 ----
        char *svc_description="";
        char *user;
!       char *comment_data;
        int persistent=0;
        int result;
***************
*** 1365,1374 ****
  
        /* get the comment */
!       comment=my_strtok(NULL,"\n");
!       if(comment==NULL)
                return ERROR;
  
        /* add the comment */
!       
result=add_new_comment((cmd==CMD_ADD_HOST_COMMENT)?HOST_COMMENT:SERVICE_COMMENT,USER_COMMENT,host_name,svc_description,entry_time,user,comment,persistent,COMMENTSOURCE_EXTERNAL,FALSE,(time_t)0,NULL);
  
        if(result<0)
--- 1365,1374 ----
  
        /* get the comment */
!       comment_data=my_strtok(NULL,"\n");
!       if(comment_data==NULL)
                return ERROR;
  
        /* add the comment */
!       
result=add_new_comment((cmd==CMD_ADD_HOST_COMMENT)?HOST_COMMENT:SERVICE_COMMENT,USER_COMMENT,host_name,svc_description,entry_time,user,comment_data,persistent,COMMENTSOURCE_EXTERNAL,FALSE,(time_t)0,NULL);
  
        if(result<0)
***************
*** 1661,1665 ****
        char *output;
        int result;
-       time_t current_time;
  
  #ifdef DEBUG0
--- 1661,1664 ----
***************
*** 1867,1872 ****
  /* this function is a bit more involved than for passive service checks, as 
we need to replicate most functions performed by check_route_to_host() */
  int process_passive_host_check(time_t check_time, char *host_name, int 
return_code, char *output){
-       char *real_host_name;
        host *temp_host;
        struct timeval tv;
        char temp_plugin_output[MAX_PLUGINOUTPUT_LENGTH]="";
--- 1866,1871 ----
  /* this function is a bit more involved than for passive service checks, as 
we need to replicate most functions performed by check_route_to_host() */
  int process_passive_host_check(time_t check_time, char *host_name, int 
return_code, char *output){
        host *temp_host;
+       char *real_host_name="";
        struct timeval tv;
        char temp_plugin_output[MAX_PLUGINOUTPUT_LENGTH]="";
***************
*** 2196,2200 ****
        service *temp_service=NULL;
        host *temp_host=NULL;
-       host *this_host=NULL;
        host *last_host=NULL;
        hostgroup *temp_hostgroup=NULL;
--- 2195,2198 ----
***************
*** 2213,2217 ****
        unsigned long duration;
        char *author="";
!       char *comment="";
        unsigned long downtime_id;
  
--- 2211,2215 ----
        unsigned long duration;
        char *author="";
!       char *comment_data="";
        unsigned long downtime_id;
  
***************
*** 2309,2314 ****
  
        /* get the comment */
!       comment=my_strtok(NULL,";");
!       if(comment==NULL)
                return ERROR;
  
--- 2307,2312 ----
  
        /* get the comment */
!       comment_data=my_strtok(NULL,";");
!       if(comment_data==NULL)
                return ERROR;
  
***************
*** 2321,2329 ****
  
        case CMD_SCHEDULE_HOST_DOWNTIME:
!               
schedule_downtime(HOST_DOWNTIME,host_name,NULL,entry_time,author,comment,start_time,end_time,fixed,triggered_by,duration,&downtime_id);
                break;
  
        case CMD_SCHEDULE_SVC_DOWNTIME:
!               
schedule_downtime(SERVICE_DOWNTIME,host_name,svc_description,entry_time,author,comment,start_time,end_time,fixed,triggered_by,duration,&downtime_id);
                break;
  
--- 2319,2327 ----
  
        case CMD_SCHEDULE_HOST_DOWNTIME:
!               
schedule_downtime(HOST_DOWNTIME,host_name,NULL,entry_time,author,comment_data,start_time,end_time,fixed,triggered_by,duration,&downtime_id);
                break;
  
        case CMD_SCHEDULE_SVC_DOWNTIME:
!               
schedule_downtime(SERVICE_DOWNTIME,host_name,svc_description,entry_time,author,comment_data,start_time,end_time,fixed,triggered_by,duration,&downtime_id);
                break;
  
***************
*** 2331,2335 ****
                
for(temp_service=service_list;temp_service!=NULL;temp_service=temp_service->next){
                        if(!strcmp(temp_service->host_name,host_name))
!                               
schedule_downtime(SERVICE_DOWNTIME,host_name,temp_service->description,entry_time,author,comment,start_time,end_time,fixed,triggered_by,duration,&downtime_id);
                        }
                break;
--- 2329,2333 ----
                
for(temp_service=service_list;temp_service!=NULL;temp_service=temp_service->next){
                        if(!strcmp(temp_service->host_name,host_name))
!                               
schedule_downtime(SERVICE_DOWNTIME,host_name,temp_service->description,entry_time,author,comment_data,start_time,end_time,fixed,triggered_by,duration,&downtime_id);
                        }
                break;
***************
*** 2337,2341 ****
        case CMD_SCHEDULE_HOSTGROUP_HOST_DOWNTIME:
                
for(temp_hgmember=temp_hostgroup->members;temp_hgmember!=NULL;temp_hgmember=temp_hgmember->next)
!                       
schedule_downtime(HOST_DOWNTIME,temp_hgmember->host_name,NULL,entry_time,author,comment,start_time,end_time,fixed,triggered_by,duration,&downtime_id);
                break;
  
--- 2335,2339 ----
        case CMD_SCHEDULE_HOSTGROUP_HOST_DOWNTIME:
                
for(temp_hgmember=temp_hostgroup->members;temp_hgmember!=NULL;temp_hgmember=temp_hgmember->next)
!                       
schedule_downtime(HOST_DOWNTIME,temp_hgmember->host_name,NULL,entry_time,author,comment_data,start_time,end_time,fixed,triggered_by,duration,&downtime_id);
                break;
  
***************
*** 2344,2348 ****
                        
for(temp_service=service_list;temp_service!=NULL;temp_service=temp_service->next){
                                
if(!strcmp(temp_service->host_name,temp_hgmember->host_name))
!                                       
schedule_downtime(SERVICE_DOWNTIME,temp_service->host_name,temp_service->description,entry_time,author,comment,start_time,end_time,fixed,triggered_by,duration,&downtime_id);
                                }
                        }
--- 2342,2346 ----
                        
for(temp_service=service_list;temp_service!=NULL;temp_service=temp_service->next){
                                
if(!strcmp(temp_service->host_name,temp_hgmember->host_name))
!                                       
schedule_downtime(SERVICE_DOWNTIME,temp_service->host_name,temp_service->description,entry_time,author,comment_data,start_time,end_time,fixed,triggered_by,duration,&downtime_id);
                                }
                        }
***************
*** 2357,2361 ****
                        if(last_host==temp_host)
                                continue;
!                       
schedule_downtime(HOST_DOWNTIME,temp_sgmember->host_name,NULL,entry_time,author,comment,start_time,end_time,fixed,triggered_by,duration,&downtime_id);
                        last_host=temp_host;
                        }
--- 2355,2359 ----
                        if(last_host==temp_host)
                                continue;
!                       
schedule_downtime(HOST_DOWNTIME,temp_sgmember->host_name,NULL,entry_time,author,comment_data,start_time,end_time,fixed,triggered_by,duration,&downtime_id);
                        last_host=temp_host;
                        }
***************
*** 2364,2368 ****
        case CMD_SCHEDULE_SERVICEGROUP_SVC_DOWNTIME:
                
for(temp_sgmember=temp_servicegroup->members;temp_sgmember!=NULL;temp_sgmember=temp_sgmember->next)
!                       
schedule_downtime(SERVICE_DOWNTIME,temp_sgmember->host_name,temp_sgmember->service_description,entry_time,author,comment,start_time,end_time,fixed,triggered_by,duration,&downtime_id);
                break;
  
--- 2362,2366 ----
        case CMD_SCHEDULE_SERVICEGROUP_SVC_DOWNTIME:
                
for(temp_sgmember=temp_servicegroup->members;temp_sgmember!=NULL;temp_sgmember=temp_sgmember->next)
!                       
schedule_downtime(SERVICE_DOWNTIME,temp_sgmember->host_name,temp_sgmember->service_description,entry_time,author,comment_data,start_time,end_time,fixed,triggered_by,duration,&downtime_id);
                break;
  
***************
*** 2370,2377 ****
  
                /* schedule downtime for "parent" host */
!               
schedule_downtime(HOST_DOWNTIME,host_name,NULL,entry_time,author,comment,start_time,end_time,fixed,triggered_by,duration,&downtime_id);
  
                /* schedule (non-triggered) downtime for all child hosts */
!               
schedule_and_propagate_downtime(temp_host,entry_time,author,comment,start_time,end_time,fixed,0,duration);
                break;
  
--- 2368,2375 ----
  
                /* schedule downtime for "parent" host */
!               
schedule_downtime(HOST_DOWNTIME,host_name,NULL,entry_time,author,comment_data,start_time,end_time,fixed,triggered_by,duration,&downtime_id);
  
                /* schedule (non-triggered) downtime for all child hosts */
!               
schedule_and_propagate_downtime(temp_host,entry_time,author,comment_data,start_time,end_time,fixed,0,duration);
                break;
  
***************
*** 2379,2386 ****
  
                /* schedule downtime for "parent" host */
!               
schedule_downtime(HOST_DOWNTIME,host_name,NULL,entry_time,author,comment,start_time,end_time,fixed,triggered_by,duration,&downtime_id);
  
                /* schedule triggered downtime for all child hosts */
!               
schedule_and_propagate_downtime(temp_host,entry_time,author,comment,start_time,end_time,fixed,downtime_id,duration);
                break;
  
--- 2377,2384 ----
  
                /* schedule downtime for "parent" host */
!               
schedule_downtime(HOST_DOWNTIME,host_name,NULL,entry_time,author,comment_data,start_time,end_time,fixed,triggered_by,duration,&downtime_id);
  
                /* schedule triggered downtime for all child hosts */
!               
schedule_and_propagate_downtime(temp_host,entry_time,author,comment_data,start_time,end_time,fixed,downtime_id,duration);
                break;
  
***************
*** 3102,3106 ****
  
  /* schedules downtime for all hosts "beyond" a given host */
! void schedule_and_propagate_downtime(host *temp_host, time_t entry_time, char 
*author, char *comment, time_t start_time, time_t end_time, int fixed, unsigned 
long triggered_by, unsigned long duration){
        host *this_host;
  
--- 3100,3104 ----
  
  /* schedules downtime for all hosts "beyond" a given host */
! void schedule_and_propagate_downtime(host *temp_host, time_t entry_time, char 
*author, char *comment_data, time_t start_time, time_t end_time, int fixed, 
unsigned long triggered_by, unsigned long duration){
        host *this_host;
  
***************
*** 3115,3122 ****
  
                        /* recurse... */
!                       
schedule_and_propagate_downtime(this_host,entry_time,author,comment,start_time,end_time,fixed,triggered_by,duration);
  
                        /* schedule downtime for this host */
!                       
schedule_downtime(HOST_DOWNTIME,this_host->name,NULL,entry_time,author,comment,start_time,end_time,fixed,triggered_by,duration,NULL);
                        }
                }
--- 3113,3120 ----
  
                        /* recurse... */
!                       
schedule_and_propagate_downtime(this_host,entry_time,author,comment_data,start_time,end_time,fixed,triggered_by,duration);
  
                        /* schedule downtime for this host */
!                       
schedule_downtime(HOST_DOWNTIME,this_host->name,NULL,entry_time,author,comment_data,start_time,end_time,fixed,triggered_by,duration,NULL);
                        }
                }

Index: nagiostats.c
===================================================================
RCS file: /cvsroot/nagios/nagios/base/nagiostats.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** nagiostats.c        13 Feb 2004 05:13:14 -0000      1.9
--- nagiostats.c        25 Oct 2004 05:05:53 -0000      1.10
***************
*** 8,12 ****
   * Copyright (c) 2003-2004 Ethan Galstad (nagios@xxxxxxxxxx)
   *
!  * Last Modified:   02-12-2004
   *
   * License:
--- 8,12 ----
   * Copyright (c) 2003-2004 Ethan Galstad (nagios@xxxxxxxxxx)
   *
!  * Last Modified:   10-24-2004
   *
   * License:
***************
*** 154,158 ****
        int result;
        int error=FALSE;
-       char buffer[MAX_INPUT_BUFFER];
        int display_license=FALSE;
        int display_help=FALSE;
--- 154,157 ----
***************
*** 590,613 ****
  int read_status_file(void){
        char temp_buffer[MAX_INPUT_BUFFER];
-       char *temp_ptr;
        FILE *fp;
        int data_type=STATUS_NO_DATA;
-       int x;
        char *var;
        char *val;
-       int result;
        time_t current_time;
        unsigned long time_difference;
  
!       double execution_time;
!       double latency;
!       int check_type;
!       int current_state;
!       double state_change;
!       int is_flapping;
!       int downtime_depth;
!       time_t last_check;
!       int should_be_scheduled;
!       int has_been_checked;
  
  
--- 589,609 ----
  int read_status_file(void){
        char temp_buffer[MAX_INPUT_BUFFER];
        FILE *fp;
        int data_type=STATUS_NO_DATA;
        char *var;
        char *val;
        time_t current_time;
        unsigned long time_difference;
  
!       double execution_time=0.0;
!       double latency=0.0;
!       int check_type=SERVICE_CHECK_ACTIVE;
!       int current_state=STATE_OK;
!       double state_change=0.0;
!       int is_flapping=FALSE;
!       int downtime_depth=0;
!       time_t last_check=0L;
!       int should_be_scheduled=TRUE;
!       int has_been_checked=TRUE;
  
  

Index: utils.c
===================================================================
RCS file: /cvsroot/nagios/nagios/base/utils.c,v
retrieving revision 1.76
retrieving revision 1.77
diff -C2 -d -r1.76 -r1.77
*** utils.c     21 Oct 2004 04:40:00 -0000      1.76
--- utils.c     25 Oct 2004 05:05:53 -0000      1.77
***************
*** 4,8 ****
   *
   * Copyright (c) 1999-2004 Ethan Galstad (nagios@xxxxxxxxxx)
!  * Last Modified:   10-20-2004
   *
   * License:
--- 4,8 ----
   *
   * Copyright (c) 1999-2004 Ethan Galstad (nagios@xxxxxxxxxx)
!  * Last Modified:   10-24-2004
   *
   * License:
***************
*** 2430,2434 ****
        char temp_arg[MAX_INPUT_BUFFER];
        char arg_buffer[MAX_INPUT_BUFFER];
-       char *temp_ptr;
        command *temp_command;
        int x,y;
--- 2430,2433 ----
***************
*** 2777,2780 ****
--- 2776,2780 ----
                break;
        case LOG_ROTATION_MONTHLY:
+       default:
                t->tm_mon++;
                t->tm_mday=1;
***************
*** 2782,2787 ****
                run_time=mktime(t);
                break;
-       default:
-               break;
                }
  
--- 2782,2785 ----
***************
*** 4139,4143 ****
  
                                /* try and read a (full or partial) message */
!                               read_result=read(ipc_pipe[0],((void 
*)&message)+write_offset,bytes_to_read);
  
                                /* we had a failure in reading from the pipe... 
*/
--- 4137,4141 ----
  
                                /* try and read a (full or partial) message */
!                               read_result=read(ipc_pipe[0],((char 
*)&message)+write_offset,bytes_to_read);
  
                                /* we had a failure in reading from the pipe... 
*/



-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
linux.arklinux....    user-groups.lin...    kde.usability/2...    ietf.ipp/2002-0...    mail.spam.spamc...    os.netbsd.devel...    audio.cd-record...    text.unicode.de...    php.documentati...    games.fps.halfl...    window-managers...    suse.oracle.gen...    bug-tracking.gn...    video.dvdrip.us...    xfree86.cvs/200...    java.netbeans.m...    network.argus/2...    culture.sf.kill...    debian.ports.al...    freebsd.questio...    qplus.devel/200...    handhelds.palm....   
Home | blog view | USPTO Patent Archive | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe