CMGDK r49-rc2
|
00001 / * C o p y r i g h t ( C ) 2 0 0 0 M y S Q L A B 00002 00003 T h i s p r o g r a m i s f r e e s o f t w a r e ; y o u c a n r e d i s t r i b u t e i t a n d / o r m o d i f y 00004 00005 i t u n d e r t h e t e r m s o f t h e G N U G e n e r a l P u b l i c L i c e n s e a s p u b l i s h e d b y 00006 00007 t h e F r e e S o f t w a r e F o u n d a t i o n ; v e r s i o n 2 o f t h e L i c e n s e . 00008 00009 T h i s p r o g r a m i s d i s t r i b u t e d i n t h e h o p e t h a t i t w i l l b e u s e f u l , 00010 00011 b u t W I T H O U T A N Y W A R R A N T Y ; w i t h o u t e v e n t h e i m p l i e d w a r r a n t y o f 00012 00013 M E R C H A N T A B I L I T Y o r F I T N E S S F O R A P A R T I C U L A R P U R P O S E . S e e t h e 00014 00015 G N U G e n e r a l P u b l i c L i c e n s e f o r m o r e d e t a i l s . 00016 00017 Y o u s h o u l d h a v e r e c e i v e d a c o p y o f t h e G N U G e n e r a l P u b l i c L i c e n s e 00018 00019 a l o n g w i t h t h i s p r o g r a m ; i f n o t , w r i t e t o t h e F r e e S o f t w a r e 00020 00021 F o u n d a t i o n , I n c . , 5 9 T e m p l e P l a c e , S u i t e 3 3 0 , B o s t o n , M A 0 2 1 1 1 - 1 3 0 7 U S A * / 00022 00023 / * 00024 00025 t h r e a d s a f e v e r s i o n o f s o m e c o m m o n f u n c t i o n s : 00026 00027 m y _ i n e t _ n t o a 00028 00029 T h i s f i l e i s a l s o u s e d t o m a k e h a n d l i n g o f s o c k e t s a n d i o c t l ( ) 00030 00031 p o r t a b l e a c c r o s s s y s t e m s . 00032 00033 * / 00034 00035 # i f n d e f _ m y _ n e t _ h 00036 00037 # d e f i n e _ m y _ n e t _ h 00038 00039 C _ M O D E _ S T A R T 00040 00041 # i n c l u d e < e r r n o . h > 00042 00043 # i f d e f H A V E _ S Y S _ S O C K E T _ H 00044 00045 # i n c l u d e < s y s / s o c k e t . h > 00046 00047 # e n d i f 00048 00049 # i f d e f H A V E _ N E T I N E T _ I N _ H 00050 00051 # i n c l u d e < n e t i n e t / i n . h > 00052 00053 # e n d i f 00054 00055 # i f d e f H A V E _ A R P A _ I N E T _ H 00056 00057 # i n c l u d e < a r p a / i n e t . h > 00058 00059 # e n d i f 00060 00061 # i f d e f H A V E _ P O L L 00062 00063 # i n c l u d e < s y s / p o l l . h > 00064 00065 # e n d i f 00066 00067 # i f d e f H A V E _ S Y S _ I O C T L _ H 00068 00069 # i n c l u d e < s y s / i o c t l . h > 00070 00071 # e n d i f 00072 00073 # i f ! d e f i n e d ( _ _ W I N _ _ ) & & ! d e f i n e d ( H A V E _ B R O K E N _ N E T I N E T _ I N C L U D E S ) & & ! d e f i n e d ( _ _ N E T W A R E _ _ ) 00074 00075 # i n c l u d e < n e t i n e t / i n _ s y s t m . h > 00076 00077 # i n c l u d e < n e t i n e t / i n . h > 00078 00079 # i n c l u d e < n e t i n e t / i p . h > 00080 00081 # i f ! d e f i n e d ( a l p h a _ l i n u x _ p o r t ) 00082 00083 # i n c l u d e < n e t i n e t / t c p . h > 00084 00085 # e n d i f 00086 00087 # e n d i f 00088 00089 # i f d e f i n e d ( _ _ W I N _ _ ) 00090 00091 # d e f i n e O _ N O N B L O C K 1 / * F o r e m u l a t i o n o f f c n t l ( ) * / 00092 00093 / * 00094 00095 S H U T _ R D W R i s c a l l e d S D _ B O T H i n w i n d o w s a n d 00096 00097 i s d e f i n e d t o 2 i n w i n s o c k 2 . h 00098 00099 # d e f i n e S D _ B O T H 0 x 0 2 00100 00101 * / 00102 00103 # d e f i n e S H U T _ R D W R 0 x 0 2 00104 00105 # e n d i f 00106 00107 / * 00108 00109 O n O S e s w h i c h d o n ' t h a v e t h e i n _ a d d r _ t , w e g u e s s t h a t u s i n g u i n t 3 2 i s t h e b e s t 00110 00111 p o s s i b l e c h o i c e . W e g u e s s t h i s f r o m t h e f a c t t h a t o n H P - U X 6 4 b i t & F r e e B S D 6 4 b i t 00112 00113 & S o l a r i s 6 4 b i t , i n _ a d d r _ t i s e q u i v a l e n t t o u i n t 3 2 . A n d o n L i n u x 3 2 b i t t o o . 00114 00115 * / 00116 00117 # i f n d e f H A V E _ I N _ A D D R _ T 00118 00119 # d e f i n e i n _ a d d r _ t u i n t 3 2 00120 00121 # e n d i f 00122 00123 / * T h r e a d s a f e o r p o r t a b l e v e r s i o n o f s o m e f u n c t i o n s * / 00124 00125 v o i d m y _ i n e t _ n t o a ( s t r u c t i n _ a d d r i n , c h a r * b u f ) ; 00126 00127 / * 00128 00129 H a n d l i n g o f g e t h o s t b y n a m e _ r ( ) 00130 00131 * / 00132 00133 # i f ! d e f i n e d ( H A V E _ G E T H O S T B Y N A M E _ R ) 00134 00135 s t r u c t h o s t e n t * m y _ g e t h o s t b y n a m e _ r ( c o n s t c h a r * n a m e , 00136 00137 s t r u c t h o s t e n t * r e s u l t , c h a r * b u f f e r , 00138 00139 i n t b u f l e n , i n t * h _ e r r n o p ) ; 00140 00141 v o i d m y _ g e t h o s t b y n a m e _ r _ f r e e ( ) ; 00142 00143 # e l i f d e f i n e d ( H A V E _ P T H R E A D _ A T T R _ C R E A T E ) | | d e f i n e d ( _ A I X ) | | d e f i n e d ( H A V E _ G E T H O S T B Y N A M E _ R _ G L I B C 2 _ S T Y L E ) 00144 00145 s t r u c t h o s t e n t * m y _ g e t h o s t b y n a m e _ r ( c o n s t c h a r * n a m e , 00146 00147 s t r u c t h o s t e n t * r e s u l t , c h a r * b u f f e r , 00148 00149 i n t b u f l e n , i n t * h _ e r r n o p ) ; 00150 00151 # d e f i n e m y _ g e t h o s t b y n a m e _ r _ f r e e ( ) 00152 00153 # i f ! d e f i n e d ( H A V E _ G E T H O S T B Y N A M E _ R _ G L I B C 2 _ S T Y L E ) & & ! d e f i n e d ( H P U X 1 0 ) 00154 00155 # d e f i n e G E T H O S T B Y N A M E _ B U F F _ S I Z E s i z e o f ( s t r u c t h o s t e n t _ d a t a ) 00156 00157 # e n d i f / * ! d e f i n e d ( H A V E _ G E T H O S T B Y N A M E _ R _ G L I B C 2 _ S T Y L E ) * / 00158 00159 # e l i f d e f i n e d ( H A V E _ G E T H O S T B Y N A M E _ R _ R E T U R N _ I N T ) 00160 00161 # d e f i n e G E T H O S T B Y N A M E _ B U F F _ S I Z E s i z e o f ( s t r u c t h o s t e n t _ d a t a ) 00162 00163 s t r u c t h o s t e n t * m y _ g e t h o s t b y n a m e _ r ( c o n s t c h a r * n a m e , 00164 00165 s t r u c t h o s t e n t * r e s u l t , c h a r * b u f f e r , 00166 00167 i n t b u f l e n , i n t * h _ e r r n o p ) ; 00168 00169 # d e f i n e m y _ g e t h o s t b y n a m e _ r _ f r e e ( ) 00170 00171 # e l s e 00172 00173 # d e f i n e m y _ g e t h o s t b y n a m e _ r ( A , B , C , D , E ) g e t h o s t b y n a m e _ r ( ( A ) , ( B ) , ( C ) , ( D ) , ( E ) ) 00174 00175 # d e f i n e m y _ g e t h o s t b y n a m e _ r _ f r e e ( ) 00176 00177 # e n d i f / * ! d e f i n e d ( H A V E _ G E T H O S T B Y N A M E _ R ) * / 00178 00179 # i f n d e f G E T H O S T B Y N A M E _ B U F F _ S I Z E 00180 00181 # d e f i n e G E T H O S T B Y N A M E _ B U F F _ S I Z E 2 0 4 8 00182 00183 # e n d i f 00184 00185 C _ M O D E _ E N D 00186 00187 # e n d i f 00188 00189