Class HttpHandler

  • All Implemented Interfaces:
    java.lang.Runnable

    public class HttpHandler
    extends java.lang.Object
    implements java.lang.Runnable
    Class HttpHandler is a very simple http server which provides basic facilities to control and monitor the SMPPSim server
    • Field Detail

      • logger

        private static java.util.logging.Logger logger
      • smsc

        private Smsc smsc
      • is

        private java.io.BufferedReader is
      • os

        private java.io.OutputStream os
      • socket

        private java.net.Socket socket
      • http200Response

        private static byte[] http200Response
      • http400Response

        private static byte[] http400Response
      • http500Response

        private static byte[] http500Response
      • response

        byte[] response
      • responseOK

        boolean responseOK
      • firstStopRequest

        boolean firstStopRequest
      • sft

        private java.text.SimpleDateFormat sft
      • authorisedFiles

        private java.util.ArrayList<java.lang.String> authorisedFiles
      • BINDTRANSMITTER_OK

        private static final java.lang.String BINDTRANSMITTER_OK
        See Also:
        Constant Field Values
      • BINDTRANSMITTER_ERR

        private static final java.lang.String BINDTRANSMITTER_ERR
        See Also:
        Constant Field Values
      • BINDRECEIVER_ERR

        private static final java.lang.String BINDRECEIVER_ERR
        See Also:
        Constant Field Values
      • BINDTRANSCEIVER_OK

        private static final java.lang.String BINDTRANSCEIVER_OK
        See Also:
        Constant Field Values
      • BINDTRANSCEIVER_ERR

        private static final java.lang.String BINDTRANSCEIVER_ERR
        See Also:
        Constant Field Values
      • SUBMIT_MULTI_ERR

        private static final java.lang.String SUBMIT_MULTI_ERR
        See Also:
        Constant Field Values
      • ENQUIRE_LINK_ERR

        private static final java.lang.String ENQUIRE_LINK_ERR
        See Also:
        Constant Field Values
      • docRoot

        private java.io.File docRoot
      • docRootName

        private java.lang.String docRootName
      • controlPanelMessage

        private java.lang.String controlPanelMessage
      • SCHEDULE_DELIVERY_TIME

        private static final java.lang.String SCHEDULE_DELIVERY_TIME
        See Also:
        Constant Field Values
      • REGISTERED_DELIVERY_FLAG

        private static final java.lang.String REGISTERED_DELIVERY_FLAG
        See Also:
        Constant Field Values
      • REPLACE_IF_PRESENT_FLAG

        private static final java.lang.String REPLACE_IF_PRESENT_FLAG
        See Also:
        Constant Field Values
      • SM_DEFAULT_MESSAGE_ID

        private static final java.lang.String SM_DEFAULT_MESSAGE_ID
        See Also:
        Constant Field Values
      • USER_MESSAGE_REFERENCE

        private static final java.lang.String USER_MESSAGE_REFERENCE
        See Also:
        Constant Field Values
      • DESTINATION_PORT

        private static final java.lang.String DESTINATION_PORT
        See Also:
        Constant Field Values
      • SAR_TOTAL_SEGMENTS

        private static final java.lang.String SAR_TOTAL_SEGMENTS
        See Also:
        Constant Field Values
      • SAR_SEGMENT_SEQNUM

        private static final java.lang.String SAR_SEGMENT_SEQNUM
        See Also:
        Constant Field Values
      • USER_RESPONSE_CODE

        private static final java.lang.String USER_RESPONSE_CODE
        See Also:
        Constant Field Values
      • PRIVACY_INDICATOR

        private static final java.lang.String PRIVACY_INDICATOR
        See Also:
        Constant Field Values
      • SOURCE_SUBADDRESS

        private static final java.lang.String SOURCE_SUBADDRESS
        See Also:
        Constant Field Values
      • LANGUAGE_INDICATOR

        private static final java.lang.String LANGUAGE_INDICATOR
        See Also:
        Constant Field Values
      • short_message

        private java.lang.String short_message
      • shortMessageInHex

        private boolean shortMessageInHex
      • source_addr

        private java.lang.String source_addr
      • dest_addr

        private java.lang.String dest_addr
      • service_type

        private java.lang.String service_type
      • source_addr_ton

        private java.lang.String source_addr_ton
      • source_addr_npi

        private java.lang.String source_addr_npi
      • dest_addr_ton

        private java.lang.String dest_addr_ton
      • dest_addr_npi

        private java.lang.String dest_addr_npi
      • esm_class

        private java.lang.String esm_class
      • protocol_id

        private java.lang.String protocol_id
      • priority_flag

        private java.lang.String priority_flag
      • schedule_delivery_time

        private java.lang.String schedule_delivery_time
      • validity_period

        private java.lang.String validity_period
      • registered_delivery_flag

        private java.lang.String registered_delivery_flag
      • replace_if_present_flag

        private java.lang.String replace_if_present_flag
      • data_coding

        private java.lang.String data_coding
      • sm_default_message_id

        private java.lang.String sm_default_message_id
      • sm_length

        private java.lang.String sm_length
      • user_message_reference

        private java.lang.String user_message_reference
      • source_port

        private java.lang.String source_port
      • destination_port

        private java.lang.String destination_port
      • sar_msg_ref_num

        private java.lang.String sar_msg_ref_num
      • sar_total_segments

        private java.lang.String sar_total_segments
      • sar_segment_seqnum

        private java.lang.String sar_segment_seqnum
      • user_response_code

        private java.lang.String user_response_code
      • privacy_indicator

        private java.lang.String privacy_indicator
      • payload_type

        private java.lang.String payload_type
      • message_payload

        private java.lang.String message_payload
      • callback_num

        private java.lang.String callback_num
      • source_subaddress

        private java.lang.String source_subaddress
      • dest_subaddress

        private java.lang.String dest_subaddress
      • language_indicator

        private java.lang.String language_indicator
      • tlv1_tag

        private java.lang.String tlv1_tag
      • tlv2_tag

        private java.lang.String tlv2_tag
      • tlv3_tag

        private java.lang.String tlv3_tag
      • tlv4_tag

        private java.lang.String tlv4_tag
      • tlv5_tag

        private java.lang.String tlv5_tag
      • tlv6_tag

        private java.lang.String tlv6_tag
      • tlv7_tag

        private java.lang.String tlv7_tag
      • tlv1_len

        private java.lang.String tlv1_len
      • tlv2_len

        private java.lang.String tlv2_len
      • tlv3_len

        private java.lang.String tlv3_len
      • tlv4_len

        private java.lang.String tlv4_len
      • tlv5_len

        private java.lang.String tlv5_len
      • tlv6_len

        private java.lang.String tlv6_len
      • tlv7_len

        private java.lang.String tlv7_len
      • tlv1_val

        private java.lang.String tlv1_val
      • tlv2_val

        private java.lang.String tlv2_val
      • tlv3_val

        private java.lang.String tlv3_val
      • tlv4_val

        private java.lang.String tlv4_val
      • tlv5_val

        private java.lang.String tlv5_val
      • tlv6_val

        private java.lang.String tlv6_val
      • tlv7_val

        private java.lang.String tlv7_val
    • Constructor Detail

      • HttpHandler

        public HttpHandler​(java.io.File dr)
    • Method Detail

      • run

        public void run()
        Specified by:
        run in interface java.lang.Runnable
      • processRequest

        private byte[] processRequest​(java.lang.String target)
      • generateFile

        private java.io.File generateFile​(java.lang.String filename)
      • prepareResponse

        private byte[] prepareResponse​(java.io.File requestedFile)
                                throws java.io.IOException
        Throws:
        java.io.IOException
      • replaceParams

        private java.lang.String replaceParams​(java.io.ByteArrayOutputStream bOut)
      • getParamValue

        private java.lang.String getParamValue​(java.lang.String paramName)
      • injectMo

        private byte[] injectMo​(java.lang.String message)
      • stats

        private byte[] stats()
      • parseMoInjectForm

        private DeliverSM parseMoInjectForm​(java.lang.String HTTPmessage)
                                     throws java.lang.Exception
        Throws:
        java.lang.Exception
      • plainResponse

        private byte[] plainResponse​(java.io.File requestedFile)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • readRequest

        private java.lang.String readRequest​(java.io.BufferedReader is)
                                      throws java.lang.Exception
        Throws:
        java.lang.Exception
      • writeResponse

        private void writeResponse​(byte[] response,
                                   java.io.OutputStream os)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • closeConnection

        private void closeConnection​(java.net.Socket socket,
                                     java.io.OutputStream os)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • leastOf

        private int leastOf​(int a,
                            int b,
                            int c,
                            int d,
                            int e)
      • createHeaderBytes

        private byte[] createHeaderBytes​(java.lang.String resp,
                                         int contentLen,
                                         java.lang.String contentType)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • exit

        public void exit()