blob: a562a54b9d56c7ac555cfbeded65d19bf5c9d5ae [file] [log] [blame]
Nick Kralevich3e76e0a2011-12-15 11:43:38 -08001/*
2 * Copyright (C) 2012-2013 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef _LOGD_LOG_LISTENER_H__
18#define _LOGD_LOG_LISTENER_H__
19
20#include <sysutils/SocketListener.h>
21#include "LogReader.h"
22
Mark Salyzync4e48232017-05-04 13:54:46 -070023// DEFAULT_OVERFLOWUID is defined in linux/highuid.h, which is not part of
24// the uapi headers for userspace to use. This value is filled in on the
25// out-of-band socket credentials if the OS fails to find one available.
26// One of the causes of this is if SO_PASSCRED is set, all the packets before
27// that point will have this value. We also use it in a fake credential if
28// no socket credentials are supplied.
29#ifndef DEFAULT_OVERFLOWUID
30#define DEFAULT_OVERFLOWUID 65534
31#endif
32
Nick Kralevich3e76e0a2011-12-15 11:43:38 -080033class LogListener : public SocketListener {
Chenjie Luofafea322017-04-27 16:49:09 -070034 LogBufferInterface* logbuf;
Mark Salyzyn501c3732017-03-10 14:31:54 -080035 LogReader* reader;
Nick Kralevich3e76e0a2011-12-15 11:43:38 -080036
Mark Salyzyn501c3732017-03-10 14:31:54 -080037 public:
Chenjie Luofafea322017-04-27 16:49:09 -070038 LogListener(LogBufferInterface* buf, LogReader* reader /* nullable */);
Nick Kralevich3e76e0a2011-12-15 11:43:38 -080039
Mark Salyzyn501c3732017-03-10 14:31:54 -080040 protected:
41 virtual bool onDataAvailable(SocketClient* cli);
Nick Kralevich3e76e0a2011-12-15 11:43:38 -080042
Mark Salyzyn501c3732017-03-10 14:31:54 -080043 private:
Nick Kralevich3e76e0a2011-12-15 11:43:38 -080044 static int getLogSocket();
45};
46
47#endif