question: private boolean deleteStorage ( TrackerServer trackerServer , String groupName , String storageIpAddr ) throws IOException { byte [ ] header ; byte [ ] bGroupName ; byte [ ] bs ; int len ; Socket trackerSocket ; trackerSocket = trackerServer . getSocket ( ) ; OutputStream out = trackerSocket . getOutputStream ( ) ; bs = groupName . getBytes ( ClientGlobal . g_charset ) ; bGroupName = new byte [ ProtoCommon . FDFS_GROUP_NAME_MAX_LEN ] ; if ( bs . length <= ProtoCommon . FDFS_GROUP_NAME_MAX_LEN ) { len = bs . length ; } else { len = ProtoCommon . FDFS_GROUP_NAME_MAX_LEN ; } Arrays . fill ( bGroupName , ( byte ) 0 ) ; System . arraycopy ( bs , 0 , bGroupName , 0 , len ) ; int ipAddrLen ; byte [ ] bIpAddr = storageIpAddr . getBytes ( ClientGlobal . g_charset ) ; if ( bIpAddr . length < ProtoCommon . FDFS_IPADDR_SIZE ) { ipAddrLen = bIpAddr . length ; } else { ipAddrLen = ProtoCommon . FDFS_IPADDR_SIZE - 1 ; } header = ProtoCommon . packHeader ( ProtoCommon . TRACKER_PROTO_CMD_SERVER_DELETE_STORAGE , ProtoCommon . FDFS_GROUP_NAME_MAX_LEN + ipAddrLen , ( byte ) 0 ) ; byte [ ] wholePkg = new byte [ header . length + bGroupName . length + ipAddrLen ] ; System . arraycopy ( header , 0 , wholePkg , 0 , header . length ) ; System . arraycopy ( bGroupName , 0 , wholePkg , header . length , bGroupName . length ) ; System . arraycopy ( bIpAddr , 0 , wholePkg , header . length + bGroupName . length , ipAddrLen ) ; out . write ( wholePkg ) ; ProtoCommon . RecvPackageInfo pkgInfo = ProtoCommon . recvPackage ( trackerSocket . getInputStream ( ) , ProtoCommon . TRACKER_PROTO_CMD_RESP , 0 ) ; this . errno = pkgInfo . errno ; return pkgInfo . errno == 0 ; }
target:  delete a storage server from the tracker server